Jump to content
Advert

Recommended Posts

Posted

Many thanks

I will also change the _GdiPlus_PenSetColor() with your example

Advert
Posted

and if you look at the console output from
#findComment-1553181

you will notice that even though I give the parameters 1, 2, 3, 4, 5 
in the _GDIPlus_GraphicsSetSmoothingMode
the _GDIPlus_GraphicsGetSmoothingMode
actually only returns the three new ones  (The GDIPVER >= 0x0110 Era)
i.e.
$GDIP_SMOOTHINGMODE_NONE (3)
$GDIP_SMOOTHINGMODE_ANTIALIAS8X4 (4)
$GDIP_SMOOTHINGMODE_ANTIALIAS8X8 (5 )

I know that I know nothing

Posted

There are examples in the forum for _WinAPI_RegisterPowerSettingNotification but not one in the help file.

Spoiler
#AutoIt3Wrapper_AU3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#include <Date.au3>
#include <APIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPISys.au3>

; Global constants required for power setting notifications
;~ Global Const $WM_POWERBROADCAST = 0x0218
Global Const $PBT_POWERSETTINGCHANGE = 0x8013

; http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(RegisterPowerSettingNotification);k(DevLang-C);k(TargetOS-WINDOWS)&rd=true
Global Const $tagPOWERBROADCAST_SETTING = "byte PowerSetting[16]; ULONG DataLength; byte Data[4]"

; Create a GUI window to catch window messages
Global $hGUI = GUICreate("dummy PowerNotificationWindow GUI", 100, 100, -1, -1)

; Register for the power setting notification using the target GUID
Global $hNotify = _WinAPI_RegisterPowerSettingNotification($hGUI, $GUID_MONITOR_POWER_ON)
If @error Then
    MsgBox(16, "Error", "Failed to register power setting notification.")
    Exit
EndIf

; Register the callback function to handle $WM_POWERBROADCAST events
GUIRegisterMsg($WM_POWERBROADCAST, "WM_POWERBROADCAST_Handler")

Do ; Keep script running to catch events
Until GUIGetMsg() = $GUI_EVENT_CLOSE

; Unregister the notification handle on exit to release resources
_WinAPI_UnregisterPowerSettingNotification($hNotify)
GUIDelete()


; Callback function for handling incoming power broadcast messages
Func WM_POWERBROADCAST_Handler($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    ; Check if the power event is a setting change notification
    If $wParam = $PBT_POWERSETTINGCHANGE Then
        Local $tStructure = DllStructCreate($tagPOWERBROADCAST_SETTING, $lParam)
        Local $sDataValue = "unknown", $iDataValue = DllStructGetData($tStructure, "Data")

        Switch $iDataValue
            Case 0
                $sDataValue = "Off"
            Case 1
                $sDataValue = "On"
            Case 2
                $sDataValue = "Dimmed"
        EndSwitch

        ConsoleWrite("- " & _Now() & " - Monitor Status: " & $sDataValue & @CRLF)
    EndIf

    Return $GUI_RUNDEFMSG ; Pass remaining message handling back to Windows
EndFunc   ;==>WM_POWERBROADCAST_Handler

..change what would need changing for the help file.

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting  image.gif.922e3a93535f431de08b31ee669cc446.gif
autoit_scripter_blue_userbar.png

Posted
19 hours ago, argumentum said:

There are examples in the forum for _WinAPI_RegisterPowerSettingNotification but not one in the help file.

  Reveal hidden contents
#AutoIt3Wrapper_AU3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#include <Date.au3>
#include <APIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPISys.au3>

; Global constants required for power setting notifications
;~ Global Const $WM_POWERBROADCAST = 0x0218
Global Const $PBT_POWERSETTINGCHANGE = 0x8013

; http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(RegisterPowerSettingNotification);k(DevLang-C);k(TargetOS-WINDOWS)&rd=true
Global Const $tagPOWERBROADCAST_SETTING = "byte PowerSetting[16]; ULONG DataLength; byte Data[4]"

; Create a GUI window to catch window messages
Global $hGUI = GUICreate("dummy PowerNotificationWindow GUI", 100, 100, -1, -1)

; Register for the power setting notification using the target GUID
Global $hNotify = _WinAPI_RegisterPowerSettingNotification($hGUI, $GUID_MONITOR_POWER_ON)
If @error Then
    MsgBox(16, "Error", "Failed to register power setting notification.")
    Exit
EndIf

; Register the callback function to handle $WM_POWERBROADCAST events
GUIRegisterMsg($WM_POWERBROADCAST, "WM_POWERBROADCAST_Handler")

Do ; Keep script running to catch events
Until GUIGetMsg() = $GUI_EVENT_CLOSE

; Unregister the notification handle on exit to release resources
_WinAPI_UnregisterPowerSettingNotification($hNotify)
GUIDelete()


; Callback function for handling incoming power broadcast messages
Func WM_POWERBROADCAST_Handler($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    ; Check if the power event is a setting change notification
    If $wParam = $PBT_POWERSETTINGCHANGE Then
        Local $tStructure = DllStructCreate($tagPOWERBROADCAST_SETTING, $lParam)
        Local $sDataValue = "unknown", $iDataValue = DllStructGetData($tStructure, "Data")

        Switch $iDataValue
            Case 0
                $sDataValue = "Off"
            Case 1
                $sDataValue = "On"
            Case 2
                $sDataValue = "Dimmed"
        EndSwitch

        ConsoleWrite("- " & _Now() & " - Monitor Status: " & $sDataValue & @CRLF)
    EndIf

    Return $GUI_RUNDEFMSG ; Pass remaining message handling back to Windows
EndFunc   ;==>WM_POWERBROADCAST_Handler

..change what would need changing for the help file.

I add the example

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...