WinCE5.0でディスプレイ電源のON/OFF制御


CE初心者  2007-09-14 14:20:44  No: 143893

下記の環境で環境でWinCE5.0端末のディスプレイをON/OFFできるような
プログラムを組んでいます。
ONは問題なくできるのですが、OFFにすると画面が真っ白になってしまい、
微妙な動きをしています。解決方法をご存知の方がいらっしゃったら
教えて下さい。
なお、プログラムも下記に記載します。


【開発環境】 
・WinXP pro 
・VS2005(VS2005 VB.net スマートデバイス開発) 

【実行環境】 
・WindowsCE5.0 
・Compact Framework 2.0 


【宣言部分】
    Private Const SETPOWERRMANAGEMENT As Int32 = 6147
    Declare Function ExtEscape Lib "coredll.dll" (ByVal hdc As IntPtr, ByVal nEscape As Int32, ByVal cbInput As Int32, ByVal plszInData As Byte(), ByVal cbOutput As Int32, ByVal lpszOutData As IntPtr) As Int32
    Declare Function GetDC Lib "coredll.dll" (ByVal hwnd As IntPtr) As IntPtr

    Public Enum DisplayPowerState As Integer
        DisplayPowerOn = 1
        DisplayPowerStandBy
        DisplayPowerSuspend
        DisplayPowerOff
    End Enum

    Public Sub PowerOff()
        Dim hdc As IntPtr = GetDC(IntPtr.Zero)
        Dim vpm() As Byte = {12, 0, 0, 0, 1, 0, 0, 0, DisplayPowerState.DisplayPowerOff, 0, 0, 0, 0}
        ExtEscape(hdc, SETPOWERRMANAGEMENT, 12, vpm, 0, IntPtr.Zero)
    End Sub

    Public Sub PowerON()
        Dim hdc As IntPtr = GetDC(IntPtr.Zero)
        Dim vpm() As Byte = {12, 0, 0, 0, 1, 0, 0, 0, DisplayPowerState.DisplayPowerOn, 0, 0, 0, 0}
        ExtEscape(hdc, SETPOWERRMANAGEMENT, 12, vpm, 0, IntPtr.Zero)
    End Sub

【実行部分】
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ' ディスプレイ電源Off
        Me.PowerOff()
        ' 待機
        System.Threading.Thread.Sleep(6000)
        ' ディスプレイ電源On
        Me.PowerON()
    End Sub


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加