[solved] GetWindowText und GetClassName funktionieren nicht
-
Hallo, wodran kann es liegen das die beiden Funktionen nicht funktionieren?
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) { HWND hWnd = (HWND)wParam; TCHAR szTitle[255]; TCHAR szClassName[255]; // brauch ich die Funktion memset? hab die beim googlen gefunden... ;-) memset(szTitle, 0, sizeof(szTitle)/ sizeof(TCHAR)); memset(szClassName, 0, sizeof(szClassName)/ sizeof(TCHAR)); GetWindowText(hWnd ,szTitle,255); GetClassName(hWnd, szClassName, 255); myfile << szTitle << " " << szClassName << endl; return CallNextHookEx(NULL, nCode, wParam, lParam); }ich bekomme nur merkwürdige Zahlen ausgegeben, wie z.B.: 003BEB8C 00080558
-
bogus2k schrieb:
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) { // brauch ich die Funktion memset? hab die beim googlen gefunden... ;-) memset(szTitle, 0, sizeof(szTitle)/ sizeof(TCHAR)); memset(szClassName, 0, sizeof(szClassName)/ sizeof(TCHAR)); }Nee...memset un Google kannste verjessen
Schreib, wenn de denkst, Du mußt "ZeroMemory(szTitle,sizeof(szTitle));
Dann schreibe...GetWindowText(hWnd,szTitle,sizeof(szTitle)/sizeof(TCHAR));
Die Funktion verlangt die Länge der Zeichen, nicht die Größe des Puffers.
Die merkwürdigen Zahlen sind Adressen.
Ich glaube eher der Fehler liegt in: "HookProc". Is da wirklich wParam == hWnd?Ooh, man..
sizeof(szTitle)/sizeof(TCHAR) = natürlich 255. Ich sollte nach 22 Uhr nichts mehr in das Forum posten...(besonders nach Alkohol-Genuß) 
-
Geht leider immer noch nicht

Ja, wParam ist der Handle ich verwende einen WH_CBT Hook.GetWindowText((HWND)wParam ,szTitle, sizeof(szTitle)/sizeof(TCHAR));
-
Hab den Fehler gefunden! Ich muss einfach die Datei mit wfstream öffnen, damit ich auch TCHAR da reinschreiben kann...
-
bogus2k schrieb:
Hab den Fehler gefunden! Ich muss einfach die Datei mit wfstream öffnen, damit ich auch TCHAR da reinschreiben kann...
Du solltest Dir eher einen entsprechenden define machen, der je ach TCHAR Frmat fstream oder wfstream verwendet.
typedef basic_fstream<char, char_traits<TCHAR> > tfstream;Oder einen entsprechenden define oder typedef auf wfstream oder fstream.