Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
EXE forced in front of other EXE at runtime
Message
De
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:
01618377
Vues:
64
>(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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform