Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Gestione Di Finestre Di Applicazione


Messaggi consigliati

Inserito:

Salve a tutti, vorrei sottoporre il seguente problema. Prima di tutto spiego brevemente ciò che vorrei fare: tramite un pulsante il quale esegue uno script in linguaggio C vorrei comandare l'apertura di un applicativo di Windows; se questo programma fosse già aperto, cliccando sul bottone non vorrei che si aprisse una nuova istanza, ma che la finestra già aperta tornasse attiva ed in primo piano sullo schermo.

Il codice da me scritto è il seguente:

HWND Handle= NULL;

Handle= FindWindow("TfmCSVtv",NULL);

if(Handle)

{ShowWindow ( Handle, SW_SHOWNORMAL );

SetWindowPos( Handle, HWND_TOPMOST, 162, 390, 700, 380, 0);

SetForegroundWindow(Handle);}

else

{ProgramExecute("C:\\Dati\\CSVtv.exe c:\\dati");

Handle= FindWindow("TfmCSVtv",NULL);

SetWindowPos( Handle, HWND_TOPMOST, 162, 390, 700, 380, 0);

SetForegroundWindow(Handle);}

}

Il problema che mi trovo però è il seguente: supponiamo che io prema il pulsante per la prima volta, mi si apre il programma in maniera corretta; faccio apri file dal menu dell'applicazione e mi compare la classica "ApriFile". A questo punto per sbaglio clicco fuori dalla finestra e la mando in backgound (il PC è usato come supervisore per cui possiamo supporre che un operatore debba compiere un'operazione immediatamente e che quindi lasci perdere quello che stava facendo senza pensarci su). In questo modo mi sono fregato perchè nel momento in cui io clicco di nuovo sul pulsante il mio script mi riporta in primo piano la finestra dell'applicativo la quale mi copre quella di "ApriFile". Il focus è rimasto a quest'ultima e quindi dall' altra non posso fare più nulla e sono completamente bloccato. L'unica soluzione è fare CTRL+ALT+CANC e terminare l'applicazione.

Qualcuno saprebbe consigliarmi come correggere il mio script per eliminare questo problema? Oppure visto che potrei usare il VB per animare il mio pulsante potrebbe suggerirmi quelle poche righe di codice necessarie per fare ciò che voglio?

Grazie, scusate se sono stato un pò lungo.

Buona Giornata. Un saluto.

Marco.


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...