GetMessage <<- knifflige frage[n]



  • FRAGE 1:

    man kann mit GetMessage ja wohl die Messages aller bereits aktiven fenster abrufen, ist die message dann für das fenster das die messages gewöhnlich empfängt dann weg, oder trotzdem vorhadnen?

    beispiel:
    HWND ExternHWND = 'internetexplorer HWND' ^<<-- Veranschaulicht dargestellt, kein realer codeteil^
    GetMesasge(&msg,ExternHWND); ^<<- würd Die IE.exe jez die message nicht mehr bekommen die ich da abrufe oder doch?^

    FRAGE 2;
    MSG Structure
    Syntax
    `typedef struct tagMSG {

    HWND hwnd;

    UINT message;

    WPARAM wParam;

    LPARAM lParam;

    DWORD time;

    POINT pt;

    } MSG, *PMSG, *LPMSG;`

    (msdn erklärung von struct msg)
    message
    `Type: UINT

    The message identifier. Applications can only use the low word; the high word is reserved by the system.

    `

    gibt es eine liste wo diese message identifier gelistet sind, bzw hatt wer neh ahnung wo man solche infos bekommt?

    FRAGE 3:
    würde mann aus diesem message pool auch rausfinden können wenn zb eine datei geöffnet wird. zb das programm öffnet eine datei <-- wird das dann im messages pool sichtbar, bzw gibt es eine message die sagt das eine bzw welche datei geöffnet wird?



    man kann mit GetMessage ja wohl die Messages aller bereits aktiven fenster abrufen

    Nein, man kann wohl nicht, wie kommst du auf den Unsinn?
    Doku Lesen hilft echt, weiss nicht wieso das so aus der Mode gekommen ist.
    Der erste Satz zu GetMessage sollte alles klären:

    MSDN schrieb:

    Retrieves a message from the calling thread's message queue.

    D.h. du kannst nur Nachrichten aus der Queue des aufrufenden Threads damit abholen. Dein "ich hol mir die Nachrichten vom Explorer" Beispiel funktioniert also nicht.

    Die Message Identifier sind die ganzen WM_xxx defines (WM_PAINT, WM_CLOSE, ...). Und ne Liste von denen findest du in den Windows SDK Header Files bzw. in der MSDN.

    Bei den Messages geht's um Input und Fenster - irgendwelche Datei Operationen haben damit gar nichts zu tun.



  • hmm , geht aber über einen WindowsMessage Hook soviel ich in der msdn das gesehen habe!


  • Mod

    buntehaare schrieb:

    hmm , geht aber über einen WindowsMessage Hook soviel ich in der msdn das gesehen habe!

    Dateioperationen haben auch mit Windows Message Hooks nichtszu tun.
    Dazu benötigt man einen Filter-Treiber.



  • Vielleicht bezieht er sich ja auch auf (1). Das dazuzuschreiben wäre natürlich zuviel verlangt gewesen.


Anmelden zum Antworten