我想在 VB6 中使用RegisterPowerSettingNotification。
它需要一個 GUID 作為引數:
HPOWERNOTIFY RegisterPowerSettingNotification(
HANDLE hRecipient,
LPCGUID PowerSettingGuid,
DWORD Flags
);
我沒有找到任何關于如何在 VB6 中做到這一點的例子。具體來說,我不明白如何定義這個 GUID。我想這不僅僅是一個字串。
到目前為止,這是我能想到的:
Private hPowerSrc&
Private hBattCapacity&
Private hMonitorOn&
Private hPowerScheme&
Private Const DEVICE_NOTIFY_WINDOW_HANDLE As Long = 0
Private Sub pInitPower()
hPowerSrc = RegisterPowerSettingNotification(Me.hWnd, GUID_ACDC_POWER_SOURCE, DEVICE_NOTIFY_WINDOW_HANDLE)
hBattCapacity = RegisterPowerSettingNotification(Me.hWnd, GUID_BATTERY_PERCENTAGE_REMAINING, DEVICE_NOTIFY_WINDOW_HANDLE)
hMonitorOn = RegisterPowerSettingNotification(Me.hWnd, GUID_MONITOR_POWER_ON, DEVICE_NOTIFY_WINDOW_HANDLE)
hPowerScheme = RegisterPowerSettingNotification(Me.hWnd, GUID_POWERSCHEME_PERSONALITY, DEVICE_NOTIFY_WINDOW_HANDLE)
End Sub
我將如何完成此示例(包括 API 宣告和 GUID)并呼叫它?
謝謝!
uj5u.com熱心網友回復:
根據How to use GUID in VB6,嘗試如下操作:
Private hPowerSrc&
Private hBattCapacity&
Private hMonitorOn&
Private hPowerScheme&
Private Const DEVICE_NOTIFY_WINDOW_HANDLE As Long = 0
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare Function CLSIDFromString Lib "ole32" (ByVal lpsz As Long, ByRef clsid As GUID) As Long
Private Declare Function RegisterPowerSettingNotification Lib "user32" (ByVal hRecipient As Long, ByRef PowerSettingGuid As GUID, ByVal Flags As Long) As Long;
Private Sub pInitPower()
Dim GUID_ACDC_POWER_SOURCE as GUID
Dim GUID_BATTERY_PERCENTAGE_REMAINING as GUID
Dim GUID_MONITOR_POWER_ON as GUID
Dim GUID_POWERSCHEME_PERSONALITY as GUID
CLSIDFromString StrPtr("{5D3E9A59-E9D5-4B00-A6BD-FF34FF516548}"), GUID_ACDC_POWER_SOURCE
CLSIDFromString StrPtr("{A7AD8041-B45A-4CAE-87A3-EECBB468A9E1}"), GUID_BATTERY_PERCENTAGE_REMAINING
CLSIDFromString StrPtr("{02731015-4510-4526-99E6-E5A17EBD1AEA}"), GUID_MONITOR_POWER_ON
CLSIDFromString StrPtr("{245d8541-3943-4422-b025-13A784F679B7}"), GUID_POWERSCHEME_PERSONALITY
hPowerSrc = RegisterPowerSettingNotification(Me.hWnd, GUID_ACDC_POWER_SOURCE, DEVICE_NOTIFY_WINDOW_HANDLE)
hBattCapacity = RegisterPowerSettingNotification(Me.hWnd, GUID_BATTERY_PERCENTAGE_REMAINING, DEVICE_NOTIFY_WINDOW_HANDLE)
hMonitorOn = RegisterPowerSettingNotification(Me.hWnd, GUID_MONITOR_POWER_ON, DEVICE_NOTIFY_WINDOW_HANDLE)
hPowerScheme = RegisterPowerSettingNotification(Me.hWnd, GUID_POWERSCHEME_PERSONALITY, DEVICE_NOTIFY_WINDOW_HANDLE)
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314742.html
