10 分ごとに Web サーバーへの呼び出しをトリガーしたい Windows Mobile 6.5 プログラムがあります。しかし、イベントは常に呼び出されているとは限りません。イベントがいつトリガーされるかをテストする簡単なプログラムを作成しました。
threading.timer は 10 秒ごとに実行され、時間を文字列に格納するように設定されています。デバイスの電源ボタンがクリックされたとき、またはデバイスがアイドル状態のときにこのタイマーが引き続き実行されるように、無人モードの要件を設定しようとしています。
デバイスの電源ボタンをクリックすると、タイマーの実行が停止します。
Imports System.Threading
Imports Win32
Public Class Form1
Dim time As String = ""
Dim tmrUploadTimerThread As Timer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CoreDLL.PowerPolicyNotify(PPNMessage.PPN_UNATTENDEDMODE, -1)
tmrUploadTimerThread = New Timer(New TimerCallback(AddressOf Timer_Worker), Nothing, 10000, 10000)
End Sub
Private Sub Timer_Worker()
time = Now & Environment.NewLine & time
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = time
End Sub
Private Sub Form1_Closed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed
CoreDLL.PowerPolicyNotify(PPNMessage.PPN_UNATTENDEDMODE, 0)
Me.Dispose()
Application.Exit()
End Sub
クラス終了
Windows Mobile Power Managementからクラス Win32 を取得しました。以下は、PowerPolicyNotify のコードです。
[DllImport("CoreDLL")]
public static extern int PowerPolicyNotify(
PPNMessage dwMessage,
int option
// DevicePowerFlags);
);