FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SET MULTIPLE OFF
Posts: 38
Joined: Mon Nov 28, 2005 02:10 PM
SET MULTIPLE OFF
Posted: Mon Jan 16, 2006 04:54 PM

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

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
SET MULTIPLE OFF
Posted: Mon Jan 16, 2006 05:43 PM

Carlos,

IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )
RETURN NIL
ENDIF

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 38
Joined: Mon Nov 28, 2005 02:10 PM
SET MULTIPLE OFF
Posted: Tue Jan 17, 2006 05:07 PM
Antonio,
obtengo el Error: Unresolved external _HB_FUN_ISEXERUNNING ...
Estoy utilizando FWH2.5 + xHarbour

Saludos,
Carlos Sincuir


Antonio Linares wrote:Carlos,

IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )
RETURN NIL
ENDIF
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
SET MULTIPLE OFF
Posted: Tue Jan 17, 2006 07:03 PM

Carlos,

La funci贸n IsExeRunning() se implement贸 en el build del mes de Febrero del 2005.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 38
Joined: Mon Nov 28, 2005 02:10 PM
SET MULTIPLE OFF
Posted: Wed Jan 18, 2006 02:37 AM

Gracias Antonio, ya me funciono, estaba enlazanado las libs de FW24

Saludos.

Carlos Sincuir

Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
SET MULTIPLE OFF
Posted: Sun Aug 13, 2006 03:07 PM
Antonio Linares wrote:Carlos,

La funci贸n IsExeRunning() se implement贸 en el build del mes de Febrero del 2005.


Antonio 驴como puedo hacer para que el programa que ya est谩 corriendo tome el foco?
Saludos

Quique
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
SET MULTIPLE OFF
Posted: Mon Aug 14, 2006 10:39 AM
Quique,

Aqui tienes un ejemplo completo funcionando:
#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

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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 126
Joined: Fri Oct 07, 2005 04:20 PM
SET MULTIPLE OFF
Posted: Mon Aug 14, 2006 03:43 PM

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

Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
SET MULTIPLE OFF
Posted: Mon Aug 14, 2006 11:51 PM
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


En el c贸digo que dio Antonio donde estan los #define agrega:

#define SW_RESTORE 9

y justo antes de setForeGroundWindow( hWnd ) agrega:

if isIconic( hWnd )
showWindow( hWnd, SW_RESTORE )
endIf
Saludos

Quique
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
SET MULTIPLE OFF
Posted: Tue Aug 15, 2006 06:32 AM

Quique,

Gracias :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 126
Joined: Fri Oct 07, 2005 04:20 PM
SET MULTIPLE OFF
Posted: Tue Aug 15, 2006 03:36 PM

Pues no... :(

ni toma el foco, ni se restaura la ventana de la aplicaci贸n.

Que podra ser, lo he hecho segun lo indicado.

Saludos
Marco A. Delgado.

Continue the discussion