Rubrik: Fenster | 22.03.05 |
PostMessage-Funktion Diese Funktion sendet eine Nachricht an ein angegebenes Fenster, die nicht an das Fenster direkt sondern an dessen Nachrichteneingangspuffer übermittelt wird, wobei nicht auf eine Bestätigung des Threads gewartet wird. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 18.767 |
Deklaration:
Declare Function PostMessage Lib "user32" _ Alias "PostMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long
Beschreibung:
Diese Funktion sendet eine Nachricht an ein angegebenes Fenster, die nicht an das Fenster direkt sondern an dessen Nachrichteneingangspuffer übermittelt wird, wobei nicht auf eineBestätigung des Threads gewartet wird.
Parameter:
hwnd | Erwartet das Handle des Fensters, andas die Nachricht gesendet werden soll. |
wMsg | Erwartet eine Nachricht, die an das Fenster gesendet werden soll. |
wParam | Erwartet zusätzliche Parameter für die zu sendende Nachricht. |
lParam | Erwartet zusätzliche Parameter für die zu sendende Nachricht. |
Rückgabewert:
Ist die Funktion erfolgreich, so wird ein Wert "ungleich 0" zurückgegeben, andernfalls derWert "0". Für erweiterte Fehlerinformationen können Sie die GetLastError-Funktion aufrufen.
Beispiel:
Private Declare Function GetModuleFileName Lib "kernel32" _ Alias "GetModuleFileNameA" ( _ ByVal hModule As Long, _ ByVal lpFileName As String, _ ByVal nSize As Long) As Long Private Declare Function PostMessage Lib "user32" _ Alias "PostMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long ' eine der Standard-Fensternachrichten Private Const WM_CLOSE = &H10 ' Fenster schließen
' Anwendungspfad ermitteln Private Sub Form_Load() Dim Retval As Long, ExePath As String * 128 ' Exepfad ermitteln und ausgeben Retval = GetModuleFileName(hInst, ExePath, Len(ExePath)) MsgBox Left$(ExePath, Retval), , "Anwendungspfad" ' Programm beenden Call PostMessage(Me.hwnd, WM_CLOSE, 0&, ByVal 0&) End Sub