|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
[C] Cercare in una cartella un EXE di dimensioni prestabilite
Ho il mio bel codicillo pulito e profumato che mi cerca un file (identificatore di un programma) nell' harddisk e mi restituisce ( nella stringa strStartPath ) la path in cui l'ha trovato.
Mò ho sta path...e devo farci una cosa difficile difficile per 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 dell'eseguibile trovato. In questo modo poi terminerò l'esecuzione dell'exe trovato tramite il suo nome. Help please ![]() Ultima modifica di BianConiglio : 05-04-2004 alle 23:43. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Compilatore e sistema operativo ?
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
dev cpp
sistema op. bè devrebbe poter andare su tutti, male che vada solo Xp ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dai un'occhiata a findfirst...cerchi tutti gli exe e poi controlli la dimensione
![]() |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
quel problema l'ho gia risolto, per ora
![]() ho utilizzato FindFirstFile..... ora un altro problema per il quale non riesco a trovare soluzione.... determinare dato il file, la sua dimensione.. non tropo le api da utilizzare......sarà qualcosa tipo getsize ma non trovo un cazz ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ah...ma allora puoi usare le API...
FindFirstFile ti ritonra una struttura di questo tipo: typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATA, *PWIN32_FIND_DATA; |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
ikkia e io a farmi una marea di seghe mantali, ottimo ho risolto, grazie
![]() mò sono al 90% del progetto ![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
mh mò il problema è che vorrei ottimizzare la cosa....
io ho il prog che mi restituisce una path........io voglio che la ricerca sia fatta IN QUELLA PATH......come faccio ? Come adatto il codice seguente in modo che cerchi non nella cartella del programma ma in una PATH PREDEFINITA (che poi verrà modificata tramite dei cicli che nn posto)? Codice:
#include <windows.h> #include <stdio.h> #include <stdlib.h> int main() { int cmd3 = 192512; int cmd8 = 188416; int graf = 413696; WIN32_FIND_DATA FindFileData; HANDLE hFind = FindFirstFile("*.exe", &FindFileData); if (hFind != INVALID_HANDLE_VALUE) { do { printf ("I've found: %s\n", FindFileData.cFileName); printf ("The size is %d\n", FindFileData.nFileSizeLow); if ((FindFileData.nFileSizeLow == cmd3) || (FindFileData.nFileSizeLow == cmd8) || (FindFileData.nFileSizeLow == graf)) printf ("Found! %s\n\n", FindFileData.cFileName); else printf ("Not matching\n\n"); } while (FindNextFile(hFind, &FindFileData)); FindClose(hFind); system("pause"); return 0; } } |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
In tuaPath hai il percorso con lo \ finale (se non lo hai cacatenacelo con strcat)...
Codice:
char tuaPath[MAX_PATH]; .... if(tuaPath[strlen(tuaPath)-1] != '\\\') strcat(tuaPath, "\\") strcat(tuaPath, "*.exe") FindFirstFile(tuaPath, .... Ultima modifica di cionci : 08-04-2004 alle 08:24. |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
mh buona soluzione, dopo la implemento
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:49.