|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2007
Messaggi: 9
|
Trovare nome eseguibile da handle a finestra
Ho visto ke per trovare a partire da un handle di una finestra il nome dell'eseguibile ke l'ha creata bisogna usare le funzioni della libreria psapi...
Il problema è ke la libreria nn è inclusa in windows e nn so come fare ad includerla(uso vc++ 6.0).....Potete dirmi come fare a includerla nel progetto?Una volta inclusa il mio programma è portabile oppure necessita ke la libreria sia presente sui pc dove eseguo il programma?Ma soprattuto Psapi è l'unico modo per trovare il nome dell'eseguibile avendo l'handle di una finestra(tipo ricavato da EnumWindows)?Grazie..... |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
#define STRICT
#include <windows.h>
#include <psapi.h>
BOOL GetExeFromWindow (HWND hWnd, LPSTR lpszFileName, DWORD dwSize)
{
DWORD dwProcessId, dwModules, dwRet;
HANDLE hProcess;
HMODULE hModule;
if (hWnd == NULL || GetWindowThreadProcessId (hWnd, &dwProcessId) == 0)
return FALSE;
hProcess = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcessId);
if (hProcess == NULL)
return FALSE;
if (EnumProcessModules (hProcess, &hModule, sizeof (hModule), &dwModules) == FALSE)
{
CloseHandle (hProcess);
return FALSE;
}
dwRet = GetModuleFileNameEx (hProcess, hModule, lpszFileName, dwSize);
CloseHandle (hProcess);
return dwRet > 0;
}
La libreria PSAPI, se non sbaglio, è utilizzabile solo da NT 4 in poi. Comunque vedere <qui> su MSDN. Per poter avere informazioni sui processi anche sui Win 9x, c'è da usare la libreria "Tool Help".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2007
Messaggi: 9
|
Ma per includere psapi.dll nel progetto mi dovrebbe serivire il .lib e il .h ma dove li trovo?Ci sono in qualke cartella di windows oppure li posso scaricare da qualke parte?
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi basta andare nelle proprietà del progetto e nella sezione dedicata al Linker specificare come input la libreria psapi.lib.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:15.




















