FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour VISTA - how to avoid double start of programs
Posts: 6984
Joined: Fri Oct 07, 2005 07:07 PM

VISTA - how to avoid double start of programs

Posted: Mon Sep 18, 2006 07:16 AM

In VISTA FW - FWH programs can be started twice.
How to detect if an app is allready running?

Thanks in advance
Otto

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

VISTA - how to avoid double start of programs

Posted: Mon Sep 18, 2006 07:56 AM
Otto,
#include "FiveWin.ch" 

#define GW_CHILD      5 
#define GW_HWNDNEXT   2 

function Main() 

   local oWnd 
    
   if Is Exe Running( 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
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion