Traer al frente - primer plano

Traer al frente - primer plano

Postby FiveWiDi » Fri Aug 09, 2024 2:55 pm

Hola a todos,

Estoy intentando que un programa FWH sólo se pueda 'arrancar' una vez. Y lo consigo.

En las siguientes usos, consigo detectar que está funcionando.

Y buscando entre las ventanas de windows por su título consigo su Hwnd.

Cómo puedo traer al frente esa ventana de la que tengo su Hwnd ?

He buscado en el foro 'traer al fente' 'primer plano' y no encuentro la solución.

He probado con:

-SetFocus( oWnd:hWnd )
-BringWindowToTop( oWnd:hWnd )
-SetWindowPos(oWnd:hWnd,-1,,,,,8)

Pero no funciona.

Muchas gracias,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

Re: Traer al frente - primer plano

Postby paquitohm » Fri Aug 09, 2024 3:17 pm

Hola,

Quizás SetForegroundWindow() sea la funcion más adecuada

viewtopic.php?p=42310&sid=54b1bc8e98027fa990010f38e1026e63#p42310

Salu2
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am

Re: Traer al frente - primer plano

Postby karinha » Fri Aug 09, 2024 3:19 pm

Code: Select all  Expand view

   IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )

      MsgInfo( "WinOrcam.exe Já Está Rodando Nesta Máquina","TuPrograma.exe")

      SHOWWINDOW( FINDWINDOW( 0, "TUPROGRAMA" ), 9 )

      SETFOREGROUNDWINDOW( FINDWINDOW( 0, "TUPROGRAMA" ) )

      __QUIT()

      RETURN NIL

   ENDIF
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Traer al frente - primer plano

Postby cmsoft » Fri Aug 09, 2024 3:31 pm

Puedes probar con

Code: Select all  Expand view

function WndOnTop( lState, hWnd )

   local nRet := 0

   DEFAULT hWnd := GetActiveWindow()

   if !lState
      nRet = AcpOnTop( hWnd, -2, 0, 0, 0, 0, 3 )
   else
      nRet = AcpOnTop( hWnd, -1, 0, 0, 0, 0, 3 )
   endif

return nRet

dll32 static function AcpOnTop( hWnd AS LONG, hWndInsertAfter AS LONG, x AS LONG, y AS LONG, cx AS LONG, cy AS LONG, wFlags AS LONG ) ;
      AS LONG PASCAL  FROM "SetWindowPos" LIB "User32.dll"
 
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Traer al frente - primer plano

Postby FiveWiDi » Fri Aug 09, 2024 4:22 pm

PERFECTO!!!!!!

Ha funcionado con SetForegroundWindow().

Muchas gracias,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

Re: Traer al frente - primer plano

Postby JoseAlvarez » Sat Aug 10, 2024 12:53 pm

Saludos...

Para evitar que mi aplicación se ejecute más de una vez yo uso esto:

Code: Select all  Expand view
if IsExeRunning( ("nombre.exe") )
  MsgInfo( "No puedes abrir dos veces el programa",'Error...')
    release all
    quit
endif
 
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: Traer al frente - primer plano

Postby FiveWiDi » Sat Aug 10, 2024 4:47 pm

JoseAlvarez wrote:Saludos...

Para evitar que mi aplicación se ejecute más de una vez yo uso esto:

Code: Select all  Expand view
if IsExeRunning( ("nombre.exe") )
  MsgInfo( "No puedes abrir dos veces el programa",'Error...')
    release all
    quit
endif
 

Si, yo también uso esta manera.
Pero incluso evito que modifiquen el fichero .EXE así:

If IsExeRunning(cFileName(GetModuleFileName(GetInstance()))) // cFileName(HB_ARGV(0))
...

Muchas gracias,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1189
Joined: Mon Oct 10, 2005 2:38 pm

Re: Traer al frente - primer plano

Postby JoseAlvarez » Sun Aug 11, 2024 8:15 pm

Excelente! Esa no me la sabía

Gracias!
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 58 guests