0

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);
);
4

1 に答える 1