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

Posted

AutoIt Help file. There is a remark found in different functions concerning the ComboBox control :

If the message is sent to a ComboBox with the $CBS_DROPDOWN or $CBS_DROPDOWNLIST style the Function will fail.

This remark is found (at least) in these 5 functions (also in the corresponding _GUICtrlComboBoxEx_ functions)

_GUICtrlComboBox_GetEditSel
_GUICtrlComboBox_GetEditText
_GUICtrlComboBox_ReplaceEditSel
_GUICtrlComboBox_SetEditSel
_GUICtrlComboBox_SetEditText

But the remark is not correct as it should only be applied to $CBS_DROPDOWNLIST, because that's the combobox style that hasn't got an edit control at all. Both other ComboBox created with $CBS_SIMPLE or $CBS_DROPDOWN style (default) got an edit control. So the correct remark should be :

If the message is sent to a ComboBox with the $CBS_DROPDOWNLIST style, the Function will fail.

Thanks for reading and have a great day :bye:

"I think you are searching a bug where there is no bug... don't listen to bad advice."

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...