Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - richiamare un programma esterno senza conoscere il percorso
Forum - C/C++ - richiamare un programma esterno senza conoscere il percorso

Avatar
sherof (Normal User)
Newbie


Messaggi: 3
Iscritto: 13/11/2013

Segnala al moderatore
Postato alle 3:30
Mercoledì, 13/11/2013
ciao a tutti , come da titolo vorrei sapere un metodo per richiamare un programma esterno senza conoscere il percorso..
vi spiego io vorrei fare un programma che mi esegua i programmi che voglio io .. ho provato con system() e mi apre solo i programmi come notepad calcolatrice ecc .. ma quando voglio aprire per esempio explorer non me lo fa fare perche non è un programma di windows(?) di conseguenza l'unica soluzione che ho trovato è passargli come parametro il percorso insieme al nome del programma ma io voglio creare una funzione che mi esegua un programma esterno senza conoscere il percorso prima della compilazione, non so se mi spiego..
detto questo mi servirebbe o una funzione che mi esegua il programma appunto senza passargli il percorso o una funzione che mi restituisca il percorso dato il nome di un programma, grazie in anticipo :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:33
Mercoledì, 13/11/2013
Il sistema operativo trova i percorsi prendendoli dalla variabile d'ambiente PATH.

Se il percorso non è tra quelli indicati in PATH l'eseguibile non può essere trovato.

Quindi non esiste alcuna funzione che faccia quello che cerchi di fare tu.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
sherof (Normal User)
Newbie


Messaggi: 3
Iscritto: 13/11/2013

Segnala al moderatore
Postato alle 12:52
Mercoledì, 13/11/2013
neanche un modo x trovarmi io il percorso dato il nome di un programma? :-|

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:16
Mercoledì, 13/11/2013
Puoi fare una ricerca in tutto il disco.

Puoi fare una ricerca nel registro.

Ma non puoi saperlo "magicamente".


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
sherof (Normal User)
Newbie


Messaggi: 3
Iscritto: 13/11/2013

Segnala al moderatore
Postato alle 15:23
Mercoledì, 13/11/2013
non voglio saperlo magicamente .. non pretendo nemmeno perforza una funzione già pronta , mi basta sapere anche come posso fare una ricerca nel disco in c/c++

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:09
Mercoledì, 13/11/2013
Una singola ricerca in tutto il disco può anche impiegare molto tempo e molte risorse in termini di CPU. Non è una cosa raccomandabile ... (io butterei subito il programma che mi spazzola tutto il disco mandando al 100% la CPU ...).

In ogni caso, per la ricerca è meglio usare un banale algoritmo ricorsivo ma dato che dipende fortemente dal file system impiegato, dovrai utilizzare le API opportune (per Windows, ad esempio, le classiche FindFirstFile e compagnia bella, di cui trovi esempi ovunque).


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:26
Mercoledì, 13/11/2013


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
quello che non so come si chiama (Normal User)
Rookie


Messaggi: 37
Iscritto: 08/01/2013

Segnala al moderatore
Postato alle 19:07
Mercoledì, 13/11/2013
Scusatemi se mi permetto, ma sono d'accordissimo con nessuno, è letteralmente un suicidio setacciare l'intero filesystem in cerca di un file che può stare ovunque, quantomeno posso consigliarti di memorizzarti in uno o più file i path degli eseguibili man mano li che trovi così da evitarti questo calvario ad ogni esecuzione

PM Quote