Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Loosing focus when running another exe
Message
From
11/04/2014 07:47:51
 
 
To
11/04/2014 02:13:55
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2003 Server
Database:
MySQL
Application:
Desktop
Miscellaneous
Thread ID:
01598480
Message ID:
01598490
Views:
41
>>From my VFP application I am running another executable using ! /N7 xyz.exe. The executable is a background process without a window, but when running the executable it results in losing the focus of the VFP application. So the user must click on the form again to continue working. I try to set the focus to a textbox on the form, but the application itself does not have focus anymore.
>>The best would be if the focus would not go away in the first place, but I tried different ways and could not succeed. Any ideas?
>
>
*ShellX.prg:
>*To use:
>*
>*lcProg = 'Yourpath\yourprog.exe'
>*lcPar = 'some parameters' && Drop this line if no parameters
>*ShellX(lcProg, lcPar)
>Lparameters tcURL, tcParameter
>if empty(tcParameter)
>   tcParameter = ''
>Endif
>#define SW_HIDE 0
>#DEFINE SW_SHOWNORMAL 1
>#DEFINE SW_SHOWMINIMIZED 2
>#DEFINE SW_SHOWMAXIMIZED 3
>*!*   Legal verbs: open, edit, print, find, explore, NULL
>DECLARE INTEGER ShellExecute IN shell32.dll ; 
>   INTEGER hndWin, STRING cAction, STRING cFileName, ; 
>   STRING cParams, STRING cDir, INTEGER nShowWin
>ShellExecute( 0, "open", tcURL, tcParameter , "", SW_SHOWNORMAL )
Thanks, I am now using ShellExecute, but the focus issue remains the same. I tested with another executable to be sure (Notepad.exe) and then it does work properly, so I think the culprit is the executable that I run, which is another small VFP executable. This executable has Screen=OFF in the config.fpw and _SCREEN.Visible = .F. in the INIT of main.prg. So even with these settings, and running the exe with SW_SHOWHIDE it takes away the focus from the calling program and sets the focus to the next running window (because it cannot set the focus to itself I assume). I wonder if there is another setting I overlook.
Christian Isberner
Software Consultant
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform