SET MULTIPLE OFF
-
- Posts: 38
- Joined: Mon Nov 28, 2005 2:10 pm
SET MULTIPLE OFF
Hola,
creo que esta pregunta ya la hicieron anteriormente pero no encuento el mensaje, pero necesito que mi aplicación hecha con FWH+xHarbour no se ejecute dos veces en la misma computadora, y SET MULTIPLE OFF no funciona con xharbour.
Alguien me puede dar de nuevo la solución, Gracias.
Carlos Sincuir
creo que esta pregunta ya la hicieron anteriormente pero no encuento el mensaje, pero necesito que mi aplicación hecha con FWH+xHarbour no se ejecute dos veces en la misma computadora, y SET MULTIPLE OFF no funciona con xharbour.
Alguien me puede dar de nuevo la solución, Gracias.
Carlos Sincuir
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 38
- Joined: Mon Nov 28, 2005 2:10 pm
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 38
- Joined: Mon Nov 28, 2005 2:10 pm
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Quique,
Aqui tienes un ejemplo completo funcionando:
Observa que el título de la ventana es igual que el nombre del EXE. En caso de ser distintos, has de modificar el código.
Aqui tienes un ejemplo completo funcionando:
Code: Select all
#include "FiveWin.ch"
#define GW_CHILD 5
#define GW_HWNDNEXT 2
function Main()
local oWnd
if IsExeRunning( cFileName( HB_ARGV( 0 ) ) )
ShowApplication()
else
DEFINE WINDOW oWnd TITLE "Test"
ACTIVATE WINDOW oWnd
endif
return nil
function ShowApplication()
local hWnd := FindWnd( cFileNoExt( HB_ARGV( 0 ) ) )
if hWnd != nil
SetForeGroundWindow( hWnd )
endif
return nil
function FindWnd( cTitle )
local hWnd := GetWindow( GetDesktopWindow(), GW_CHILD )
while hWnd != 0
if Upper( cTitle ) $ Upper( GetWindowText( hWnd ) )
return hWnd
endif
hWnd = GetWindow( hWnd, GW_HWNDNEXT )
end
return nil
- Marco A. Delgado
- Posts: 126
- Joined: Fri Oct 07, 2005 4:20 pm
- Location: Veracruz, México
En el código que dio Antonio donde estan los #define agrega:Marco A. Delgado wrote:Hola Antonio.
Y como se le hace para que la aplicacion tome el foco, para que se visualize en caso de estar minimizada.
Saludos
Marco A. Delgado
#define SW_RESTORE 9
y justo antes de setForeGroundWindow( hWnd ) agrega:
if isIconic( hWnd )
showWindow( hWnd, SW_RESTORE )
endIf
Saludos
Quique
Quique
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Marco A. Delgado
- Posts: 126
- Joined: Fri Oct 07, 2005 4:20 pm
- Location: Veracruz, México