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.


Anmelden zum Antworten