per far si che la procedura venga lanciata una sola volta ho ripreso questo codice che funziona egregiamente:
- Code: Select all Expand view RUN
- OpenExe( cWINDOW, nValue )
LOCAL hWnd := GETWINDOW( GETDESKTOPWINDOW(), GW_CHILD ), lExist := .F.
DEFAULT nValue := SW_MAXIMIZE
IF ! Empty( cWindow )
cWINDOW := Upper( cWINDOW )
WHILE hWnd != 0
IF cWINDOW $ UPPER( GETWINDOWTEXT( hWnd ) )
ShowWindow( hWnd, nValue )
lExist := .T.
Exit
ENDIF
hWnd = GETWINDOW( hWnd, GW_HWNDNEXT )
ENDDO
ENDIF
RETURN lExist
Ciò che non funziona è la ri-visualizzazione della window precedente se questa è nascosta o sotto altre window.
In pratica vorrei che quando viene rilanciata la procedura e questa sente che una è già in esecuzione dovrebbe riportare il fuoco su quella già aperta e poi chiudersi.
Attualmente si chiude senza portare in primo piano quella già aperta.
Ho provato con SW_SHOW, SW_SHOWNORMAL, SW_MAXIMIZE senza alcun risultato.
E' possibile?
Grazie per l'aiuto.