Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
EXE forced in front of other EXE at runtime
Message
 
À
14/04/2015 09:35:38
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows 7
Network:
Windows 2003 Server
Database:
Visual FoxPro
Application:
Desktop
Divers
Thread ID:
01618033
Message ID:
01618381
Vues:
43
>>(snip)
>>
>>>
>>>>*DECLARE INTEGER FindWindow IN user32 STRING lpClassName, STRING lpWindowName
>>>>DECLARE INTEGER BringWindowToTop IN user32 INTEGER hWindow
>>>>
>>>>*hWnd = FindWindow(Null, Thisform.Caption)
>>>>BringWindowToTop(Thisform.HWnd)
>>>>
>>>>In a method called from a countdown time ( that just runs once for testing purposes) in a form. When it fires, and goes through this code, the window stays behind any other window and/or form ( I quickly cover the form up with other forms and exes before the time expires ).
>>>>
>>>>Any idea what I am doing incorrectly ??
>>>>
>>>
>>>I just looked at the application where I'm doing something like this and I see that I'm using SetForegroundWindow rather than BringWindowToTop,
>>>
>>>Tamar
>>
>>Sorry to bother you, Tamar.
>>
>>I am having some problems implementing this. Any chance I can peek at some of the code you are referring to that is working for you?
>>
>>Thanks a bunch!
>>
>>Tommy
>
>Hopefully you will find this program useful
>*forceforeground.prg
>Lparameters tnHWND
>
>Local lnAppThread As Number, ;
>   lnForeThread As Number
>Declare Long BringWindowToTop In Win32API Long
>
>Declare Long ShowWindow In Win32API Long, Long
>
>Declare Integer GetCurrentThreadId;
>   In kernel32
>
>Declare Integer GetWindowThreadProcessId In user32;
>   Integer   HWnd, ;
>   Integer @ lpdwProcId
>
>Declare Integer GetCurrentThreadId;
>   In kernel32
>
>Declare Integer AttachThreadInput In user32 ;
>   Integer idAttach, ;
>   Integer idAttachTo, ;
>   Integer fAttach
>
>Declare Integer GetForegroundWindow In user32
>
>m.lnForeThread = GetWindowThreadProcessId(GetForegroundWindow(), 0)
>m.lnAppThread = GetCurrentThreadId()
>
>If m.lnForeThread != m.lnAppThread
>   AttachThreadInput(m.lnForeThread, m.lnAppThread, .T.)
>   BringWindowToTop(m.tnHWND)
>   ShowWindow(m.tnHWND, 3)
>   AttachThreadInput(m.lnForeThread, m.lnAppThread, .F.)
>Else
>   BringWindowToTop(m.tnHWND)
>   ShowWindow(m.tnHWND, 3)
>Endif
>
>return
Thanks!

I'll give it a go !!
Tommy Tillman A+ NetWork+ MCP
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform