Página 1 de 1
Application topmost
Publicado: Mar Jul 28, 2015 10:44 am
por Timm
Hi!
Is it possible to make an application topmost after calling it with Execute()?
::hProcessIE := Execute( AppData:cBrowserExecute )
SetWindowPos( ???, HWND_TOPMOST, 0, 0, 0, 0, nOr( SWP_NOMOVE, SWP_NOSIZE ) )
Best regards, Timm.
Re: Application topmost
Publicado: Mar Jul 28, 2015 11:37 am
por ignacio
Not tested:
Código: Seleccionar todo
FOR EACH hWnd IN EnumWindows()
IF GetWindowThreadProcessID( hWnd ) == hMyProcessID
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, nOr( SWP_NOMOVE, SWP_NOSIZE ) )
EXIT
ENDIF
NEXT
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
HB_FUNC( GetWindowThreadProcessId ) // GetWindowThreadProcessId( hWnd ) --> hProcesssID
{
hb_retnl( GetWindowThreadProcessId( (HWND) hb_parnl( 1 ), NULL ) );
}
#pragma ENDDUMP
Regards,
Re: Application topmost
Publicado: Mar Jul 28, 2015 2:49 pm
por Timm
Ingnacio,
sorry, the code does not work.
GetWindowThreadProcessID( hWnd ) is never hMyProcessID
Best regards, Timm.
Re: Application topmost
Publicado: Mar Jul 28, 2015 7:09 pm
por ignacio
Try with:
Execute( AppData:cBrowserExecute,"c:\StartDirectory", .f., SW_SHOWNORMAL, @nProcessID )
Regards,
Re: Application topmost
Publicado: Mié Jul 29, 2015 8:18 am
por Timm
Hi Ignacio,
no, it does not work.
Best regards, Timm.
Re: Application topmost
Publicado: Mié Jul 29, 2015 9:31 am
por ignacio
Then, I believe your only chance is to use GetWindowText( hWnd ). No more clues. Sorry.
Regards,
Re: Application topmost
Publicado: Mié Jul 29, 2015 11:56 am
por Timm
Ignacio,
GetWindowText( hWnd ) works for me, many thanks!
Best regards, Timm.
Re: Application topmost
Publicado: Mié Jul 29, 2015 12:44 pm
por ignacio
Great!! Glad to help