Funktionreferenz


_WinAPI_RegisterWindowMessage

Beschreibung anzeigen in

Definiert eine neue Fensternachricht, welche garantiert einzigartig im System ist

#include <WinAPISysWin.au3>
_WinAPI_RegisterWindowMessage ( $sMessage )

Parameter

$sMessage Strings, welche die zu registrierende Nachricht festlegt

Rückgabewert

Erfolg: Ein Nachrichten-Identifizierer im Bereich von 0xC000 bis 0xFFFF
Fehler: 0. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Die RegisterWindowMessage Funktion wird genutzt, um Nachrichten zur Kommunikation zweier kooperierender Anwendungen zu
registrieren. Wenn zwei verschiedene Anwendungen denselben Nachrichten-String registrieren, geben die Anwendungen denselben
Nachrichtenwert zurück. Die Nachricht bleibt registriert bis die Sitzung beendet ist.

Siehe auch

Suche nach RegisterWindowMessage in der MSDN Bibliothek.

Beispiel

#include <APISysConstants.au3>
#include <WinAPISysWin.au3>

Opt('TrayAutoPause', 0)

OnAutoItExitRegister(OnAutoItExit)

Global $g_hForm = GUICreate('')
GUIRegisterMsg(_WinAPI_RegisterWindowMessage('SHELLHOOK'), WM_SHELLHOOK)
_WinAPI_RegisterShellHookWindow($g_hForm)

While 1
    Sleep(1000)
WEnd

Func WM_SHELLHOOK($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg

    Switch $hWnd
        Case $g_hForm
            Local $sTitle = WinGetTitle($lParam)
            Switch $wParam
                Case $HSHELL_REDRAW
                    If IsString($sTitle) Then
                        ConsoleWrite('Neu gezeichnet: ' & $sTitle & @CRLF)
                    EndIf
                Case Else
                    If BitAND($wParam, $HSHELL_WINDOWACTIVATED) = $HSHELL_WINDOWACTIVATED And IsString($sTitle) Then
                        ConsoleWrite('Aktiviert: ' & $sTitle & @CRLF)
                    EndIf
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_SHELLHOOK

Func OnAutoItExit()
    _WinAPI_DeregisterShellHookWindow($g_hForm)
EndFunc   ;==>OnAutoItExit