Home »
Public Forums »
archive »
Re: First catch of the day
Re: First catch of the day [message #42221 is a reply to message #42153] |
Sun, 16 January 2005 20:23  |
Robert Barnett
Messages: 70 Registered: May 2004
|
Member |
|
|
I think that the problem is that this E.Soft application is designed to
be the only application on the system. It's really an embedded piece of
software. However, both IDL and Siemens market it as though it is some
kind of user firendly development environment.
-------------------------------------------------
This tweak is provided on an as-is basis and
comes with absolutely no warranty
-------------------------------------------------
I have managed to partially solve the problem by using the "Minimize
All" feature in Internet Explorer. I make a batch file with the
following code
explorer ToggleDesktop.scf
sleep 2
%IDL_DIR%\bin\bin.x86\idlrt.exe %APPLICATION%
I create a file called ToggleDesktop.scf with the following contents
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
The usual result of when I run the batch file is that all windows are
minimsed and then my application is exceuted and visible on the desktop.
However, occasionally ESoft STILL manages to fight windows explorer. I
notice a subtle flicker as the ESoft application detects that it has
been minimized and then restores itself.
Another little trick I've found is that I can call MFC functions without
creating a wrapper if no arguments are required. This is very useful for
detecting if E.Soft has pushed itself forward:
if (!VERSION.OS eq 'Win32') then begin
; For Windows boxes. If the foreground
; window doesn't change after /realize
; has been called then the widgets are
; probably not visible
hwnd_current = $
CALL_EXTERNAL('C:\WINNT\system32\user32.dll','GetForegroundW indow')
;
; Widget code for realizing the window
;
if (hwnd_current eq $
CALL_EXTERNAL('C:\WINNT\system32\user32.dll','GetForegroundW indow')) $
then begin $
;
; What to do if the window wasn't realized? I guess that's up to you
;
endif
endif else begin
;
; What to do if we're not in windows
;
endelse
Lastly,
I've concluded that it is impossible to use the "Microsoft Visual C++
Toolkit 2003" to develop in tandem with IDL. The IDL wrappers require
the use of libraries not included in this package. I am looking into
purchasing "Visual C++ .NET 2003 Standard".
--
nrb@
Robbie Barnett
imag
Research Assistant
wsahs
Nuclear Medicine & Ultrasound
nsw
Westmead Hospital
gov
Sydney Australia
au
+61 2 9845 7223
|
|
|
Current Time: Wed Oct 08 16:27:18 PDT 2025
Total time taken to generate the page: 0.00183 seconds