Ciau![]()
Ho il mio bel codicillo pulito e profumato che mi cerca un file (identificatore di un programma) nell' harddisk e mi restituisce la path in cui l'ha trovato.
Mò ho sta path...e devo farci una cosa difficile difficileper me!
Devo cercare all'interno della path trovata un file exe di DIMENSIONI DATE ma che puo essere stato rinominato per comodità dell'utente (può avere 3 dimensioni, son 3 differenti versioni dello stesso exe) e voglio che il prog mi restuisca il nome.ext (a anche solo il nome) dell'eseguibile trovato.
In questo modo poi non so ancora bene come terminerò l'esecuzione dell'exe trovato tramite il suo nome (si può vero? mi pare di si !)
:master: aiuto!!
Il codice per la ricerca del file (prova.txt come esempio) nell'HD che dovrò quindi modificare con la nuova roba nuova è :
Nel ciclocodice:#include <stdio.h> #include <stdlib.h> #include <windows.h> //Ricerca di un File // int look4aFile (char* strStartPath) { HANDLE hFileSearch; WIN32_FIND_DATA hFileSearchData; int lastError = 0; char* currentSearchPattern = (char*) malloc( MAX_PATH ); char* reservedBuffer; if (currentSearchPattern) { if (!strStartPath) strStartPath = "C:\\"; strcpy (currentSearchPattern, strStartPath); strcat (currentSearchPattern, "*"); if ( (hFileSearch = FindFirstFile(currentSearchPattern, &hFileSearchData)) != INVALID_HANDLE_VALUE ) { do { if ( strcmp(hFileSearchData.cFileName, ".") && strcmp(hFileSearchData.cFileName, "..") ) { if ( hFileSearchData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) { reservedBuffer = (char*) malloc( MAX_PATH+1 ); if ( reservedBuffer ) { strcpy (reservedBuffer, strStartPath); strcat (reservedBuffer, hFileSearchData.cFileName); strcat (reservedBuffer, "\\"); lastError = look4aFile (reservedBuffer); free (reservedBuffer); } else lastError = -1; } else { if ( !stricmp(hFileSearchData.cFileName, "prova.txt" )) printf ("Ho trovato un file \"%s\" nella cartella \"%s\"\n", hFileSearchData.cFileName, strStartPath); } } } while ( FindNextFile(hFileSearch, &hFileSearchData) ); } else lastError = 1; free (currentSearchPattern); FindClose (hFileSearch); } else lastError = -1; return lastError; } int main() { look4aFile (NULL); system("PAUSE"); return 0; }
al posto dei printf ci vuole il novo codice che nn so come fare per la ricerca nella path di un exe che abbia una delle 3 dimensioni date (magari dichiarate all'inizio prog) e il consecutivo codice per terminare il processo dato il nome trovato (poi il restante uninstall degli altri file del prog da disinstallare in automatico lo faccio senza problemi)codice:if ( !stricmp(hFileSearchData.cFileName, "prova.txt" )) printf ("Ho trovato un file \"%s\" nella cartella \"%s\"\n", hFileSearchData.cFileName, strStartPath);

per me!
Rispondi quotando
