>(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
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