Subclassing
-
Hallo Leute.
Ich wollte nur fragen ob Subclassing bei den Fenstern anderer Anwendungen
funktioniert.
-
Ja, das geht. Du mußt aber den Code, der das erledigen soll, irgendwie in den Adressraum des anderen Processes bringen. Das kannst Du beispielsweise mit HOOKs realisieren.
-
Die Funktion:
LRESULT CALLBACK AbfangProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { char text[256] = ""; switch(msg) { case WM_MOUSEMOVE: { MessageBox(hwnd,"Test","",NULL); } break; default: break; } return CallWindowProc(OldEProc, hwnd, msg, wParam, lParam); }
case WM_CREATE: hwnd_ab = FindWindow(NULL,"Unbenannt - Editor"); if (hwnd_ab != NULL) { MessageBox(hwnd,"Gefunden",":::",NULL); OldEProc = (WNDPROC)SetWindowLong(hwnd_ab, GWL_WNDPROC, (LONG)AbfangProc); if (OldEProc == NULL) MessageBox(hwnd,"SetWindowLong Fehlgeschlagen",":::",NULL);//Kommt nur bei Fenstern einer anderen Anwendung } break;
-
Alles klar. Danke.
Ich dachte, dass es doch irgendwie ohne Hooks geht.