- PR -

WinCE5.0端末のディスプレイをON/OFFするプログラム

1
投稿者投稿内容
fiso
会議室デビュー日: 2007/08/04
投稿数: 10
投稿日時: 2007-09-20 15:47
プログラム初心者です。

下記の環境で環境で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
1

スキルアップ/キャリアアップ(JOB@IT)