Wrapper pour utiliser couramment des appels à une DLL
#include <SendMessage.au3>
_SendMessage ( $hWnd, $iMsg [, $wParam = 0 [, $lParam = 0 [, $iReturn = 0 [, $wParamType = "wparam" [, $lParamType = "lparam" [, $sReturnType = "lresult"]]]]]] )
$hWnd | Handle de Fenêtre ou de Contrôle |
$iMsg | Message à envoyer au contrôle (nombre) |
$wParam | [optionnel] Indique des informations spécifiques de message supplémentaire |
$lParam | [optionnel] Indique des informations spécifiques de message supplémentaire |
$iReturn |
[optionnel] Définit ce que la fonction doit retourner: 0 - Valeur retournée par l'appel à la DLL 1 - $ihWnd 2 - $iMsg 3 - $wParam 4 - $lParam <0 or > 4 - Tableau comme celui de DllCall() |
$wParamType | [optionnel] Voir Liens dans DllCall |
$lParamType | [optionnel] Voir Liens dans DllCall |
$sReturnType | [optionnel] Voir Liens dans DllCall |
Succès: | Retourne la valeur sélectionnée par l'utilisateur à partir du résultat de DllCall(). |
Échec: | Définit @error <> 0. |
Quand un message est bloqué par UIPI, la dernière erreur, récupérée par _WinAPI_GetLastError() , est définie à 5 (accès refusé).
DllCall(), _SendMessageA, _WinAPI_GetLastError
#include <MsgBoxConstants.au3> #include <SendMessage.au3> Example() Func Example() Local Const $iOff = 2, $iOn = -1 Opt("WinTitleMatchMode", 4) Local $hWnd = WinGetHandle('classname=Progman') _ToggleMonitor($hWnd, $iOff) Sleep(3000) _ToggleMonitor($hWnd, $iOn) EndFunc ;==>Example Func _ToggleMonitor($hWnd, $iOnOff) Local Const $WM_SYSCOMMAND = 274 Local Const $SC_MONITORPOWER = 61808 _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $iOnOff) If @error Then MsgBox($MB_SYSTEMMODAL, "_ToggleMonitor", "Erreur _SendMessage: " & @error) Exit EndIf EndFunc ;==>_ToggleMonitor