Code : Tout sélectionner
;~ http://www.autoitscript.fr/forum/viewtopic.php?f=4&t=7190
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Change2CUI=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Include <Array.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
;#RequireAdmin
;~ dim $GUID_LIDSWITCH_STATE_CHANGE[11]=[0xBA3E0F4D,0xB817,0x4094,0xA2,0xD1,0xD5,0x63,0x79,0xE6,0xA0,0xF3]
;~ dim $GUID_LIDSWITCH_STATE_CHANGE[5]=[0xBA3E0F4D,0xB817,0x4094,0xA2,0xD1D56379E6A0F3]
;~ GUID_LIDCLOSE_ACTION/GUID_LIDOPEN_POWERSTATE
Dim $GUID_MONITOR_POWER_ON[6]=[0x02731015,0x4510,0x4526,0x99e6,0xe5a1,0x7ebd1aea]
;~ GUID_LIDOPEN_POWERSTATE ,0x99FF10E7,0x23B1,0x4C07,0xA9,0xD1,0x5C,0x32,0x06,0xD7,0x41,0xB4 ;http://doxygen.reactos.org/d1/d86/xdk_2potypes_8h_a830d15451d4148e77f51ec655bf4b16a.html
;~ dim $GUID_LIDCLOSE_ACTION[11]=[0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36]
dim $GUID_LIDCLOSE_ACTION[11]=[0x5ca83367,0x6e45,0x459f,0xa2,0x7b,0x47,0x6b,0x1d,0x01,0xc9,0x36]
;~ dim $GUID_LIDCLOSE_ACTION[11]=[0xBA3E0F4D,0xB817,0x4094,0xA2,0xD1,0xD5,0x63,0x79,0xE6,0xA0,0xF3]
;~ GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B);
;~ GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4);
Dim $GUID_POWERSCHEME_PERSONALITY[6]=[ 0x245d8541,0x3943,0x4422,0xb025,0x13A7,0x84F679B7 ]
;~ $dimension=ubound($GUID_POWERSCHEME_PERSONALITY)
$dimension=ubound($GUID_LIDCLOSE_ACTION)
$structstate=DllStructCreate("dword state["&$dimension&"]")
For $ind=0 To $dimension-1
DllStructSetData($structstate,"state",$GUID_LIDCLOSE_ACTION[$ind],$ind)
Next
$ptrstate=DllStructGetPtr($structstate,"state")
;$GUID_POWERSCHEME_PERSONALITY='{245D8541-3943-4422-B025-13A784F679B7}'
;~ GUID_MONITOR_POWER_ON ='{02731015-4510-4526-99e6-e5a17ebd1aea}';
;~ GUID_BATTERY_PERCENTAGE_REMAINING ='{a7ad8041-b45a-4cae-87a3-eecbb468a9e1}';
;~ GUID_POWERSCHEME_PERSONALITY ='{245D8541-3943-4422-B025-13A784F679B7}';
;~ "{5ca83367-6e45-459f-a27b-476b1d01c936}"
;~ $handle = DLLCallbackRegister ("RegisterPowerSettingNotification", "int", "HANDLE;ptr;dword")
;~ $hnd = DllCallbackGetPtr($handle)
;$hnd= WinGetHandle("")
$hnd = GUICreate("test")
$resul=DllCall("User32.dll", "int", "registerPowerSettingNotification", "HANDLE",$hnd,"ptr",$ptrstate,"dword",0)
ConsoleWrite(@error&@CRLF)
If IsArray($resul) Then
ConsoleWrite("retours = "&$resul[0]&@CRLF)
_ArrayDisplay($resul)
;~ If $resul[0] = 0 Then Exit 2
Else
;~ Exit 3
EndIf
GUISetState()
ConsoleWrite("register = "&GUIRegisterMsg ( 0x0, "_MyRegisterPowerSettingNotification" )&@CRLF)
While 1
$msg =GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Sleep(250)
WEnd
func _MyRegisterPowerSettingNotification($hwnd,$Msg, $wParam, $lParam)
FileWrite(@ScriptDir&"\gdbclap.txt",'$hwnd '&$hwnd&" "&'$Msg '&$Msg&" "&'$wParam '&$wParam&" "&'$lParam '&$lParam&@CRLF)
ConsoleWrite("Dbg="&$Msg&@CRLF)
EndFunc