GetModuleFileName !!!
-
hallo,
ich lese mit der enumwindow function verschiedene informationen der gefundenen elemente in meine struct. dann kann ich mir auch den title, die process ID und den classen namen anzeigen lassen. doch ich bekomme es nicht hin den pfad mit exe und das handle anzeigen zu lassen. habe aber noch 2 probleme:
1. wie kann ich das handle in ein format bringen sodass ich mir es auch ausgeben lassen kann?
2. der file bzw. pfad name ist immer leer, gebe ich anstatt hwnd NULL an, wir mir immer der name des aktuell aktivem prozesses zurückgegeben. möchte aber den des zuletzt gefundnen eintragsstruct win{ char title[110],classname[100],file[MAX_PATH]; HWND handle; char procid[8]; }; win window[255]; int winnr; BOOL CALLBACK ShowAllWindows(HWND hwnd,LPARAM lParam) { unsigned long* id; unsigned long ulid; void *hg; if(!GetWindow(hwnd, GW_OWNER)) { hg = GlobalAlloc(GMEM_SHARE,sizeof(unsigned long)); id = (unsigned long *)GlobalLock(hg); GetWindowText(hwnd, window[winnr].title, 110); GetWindowThreadProcessId(hwnd, id);ulid = *id;ultoa(ulid,window[winnr].procid,10); GetClassName(hwnd, window[winnr].classname,100); GetModuleFileName(hwnd, window[winnr].file, sizeof(window[winnr].file)); window[winnr].handle = hwnd; winnr++; GlobalUnlock(hg); GlobalFree(hg); char all[255]=""; strcat(all,window[winnr-1].title); strcat(all,": "); strcat(all,window[winnr-1].procid); strcat(all,": "); strcat(all,window[winnr-1].classname); strcat(all,": "); strcat(all,window[winnr-1].file); Form1->ListBox1->Items->Add((AnsiString)all); } return true; }Edit:
Bitte die Code-Tags benutzen. Danke!
-
falsches Forum! und nicht mal die C++-Tags benutzt! kann ja kein mensch lesen.
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
darkshadow1979 schrieb:
1. wie kann ich das handle in ein format bringen sodass ich mir es auch ausgeben lassen kann?
Versuch es mal mit wsprintf

darkshadow1979 schrieb:
2. der file bzw. pfad name ist immer leer, gebe ich anstatt hwnd NULL an, wir mir immer der name des aktuell aktivem prozesses zurückgegeben. möchte aber den des zuletzt gefundnen eintrags