|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 17
|
Launcher eseguibili in c
Ciao a tutti.
Ho necessita di avere un programmino che mi lanci 2 o piu applicazioni residenti in percorsi diversi. avevo pensato a una cosa semplicissima sfruttando createprocess vi metto il codice STARTUPINFO si; ZeroMemory(&si,sizeof(si)); si.cb = sizeof(si); PROCESS_INFORMATION pi; ZeroMemory(&pi,sizeof(pi)); STARTUPINFO si2; ZeroMemory(&si2,sizeof(si2)); si2.cb = sizeof(si2); PROCESS_INFORMATION pi2; ZeroMemory(&pi2,sizeof(pi2)); CreateProcess("App1.exe",NULL,NULL,NULL,false,0,NULL,NULL,&si,&pi); CreateProcess("./Data/App2.exe",NULL,NULL,NULL,false,0,NULL,NULL,&si2,&pi); la seconda applicazione sta in una sottocartella..ma non viene aperta, credo non riconosca il percorso perche mettendole entrambe nella stessa dir non ci sono problemi. Se avete anche un altra soluzione potreste direttamente scrivermela?dato che sicuramente sono necessarie giusto un paio di righe..grazie a tutti! |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
![]() E comunque se devi solo lanciare qualcosa, va sicuramente anche bene ShellExecute().
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 17
|
scusa per la fesseria che ho scritto
![]() |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 17
|
non so nn me lo lancia orse sbaglio sintassi..potresti scrivermi la riga con la funzione?devo eseguire un applicazione in una sottocartella..pero evitando di scrivere i il percorso intero..
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 17
|
Risolto con shellexecute!
ultimissimo problema e poi ho finito..che comando posso usare per chiudere un processo? in pratica ogni volta che lancio da questo launcher una delle applicazioni è volutamente in background..si puo chiudere solo dalla finestra dei processi. il problema è che lanciando 2 o piu volte il launcher questa applicazione viene aperta nuovamente anche se è gia in esecuzione.. quello che vorrei fare è appunto aggiungere al launcher un comando che prima di aprire questa applicazione la chiuda se è in esecuzione..è possibile? ho provato cosi velocemente a dare ExitProcess("applicaz.exe",NULL); ma non la chiude.. scusate se non sono stato molto chiaro |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Domanda: il programma che è in background e che vuoi terminare l'hai sviluppato tu? Perché se così si può fare in modo che sia il processo in background a terminare felicemente senza un kill "brutale" (ma bisognerebbe vedere come è stato fatto il programma). Altrimenti le cose sono due: o termini il processo e lo rilanci, oppure vedi se esiste già e non lo rilanci. In ogni caso hai bisogno di usare le funzioni PSAPI (da NT 4 in poi).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 17
|
si il programma è mio ma deve restare sempre in esecuzione..
ho risolto usando system("taskkill /im app.exe /F"); a ogni chiamata li launcher...in modo che se è aperto lo chiuda per poi riaprirlo..in modo da non avere duplicati in esecuzione..grazie! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:39.