3

Compact Framework 2.0、Windows Mobile5.0SDKを使用してWindowsMo​​bileデバイスをプログラムでシャットダウンしたいと思います。

よろしく、

4

7 に答える 7

4

アプリからそれを行うのはおそらく良い考えではありません-デバイスには理由のために電源ボタンがあり、アプリをシャットダウンするとユーザーの混乱やフラストレーションを引き起こす可能性があります。

これを行う必要があり、Windows Mobile 5.0以降を使用している場合は、次のようにExitWindowsExをP/Invokeできます。

[Flags]
public enum ExitFlags
{
  Reboot = 0x02,
  PowerOff = 0x08
}

[DllImport("coredll")]
public static extern int ExitWindowsEx(ExitFlags flags, int reserved);

...

ExitWindowsEx(ExitFlags.PowerOff, 0);
于 2008-10-16T12:25:53.077 に答える
3

OpenNetCF.WindowsCE.PowerManagementクラスには、一時停止とソフト リセットのメソッドがあります。ハードウェアをリセットする方法もあります。

于 2008-11-13T10:51:04.167 に答える
1

ExitWindowsEx API に関するもう 1 つの注意点は、シャットダウンは Windows Mobile Standard (つまり、Smartphone) でのみサポートされ、Windows Mobile Professional (Pocket PC) デバイスではサポートされないことです。

MSDNのExitWindowsEx ドキュメント内の EWX_POWEROFF フラグに関する特記事項を参照してください。私は数年間、Pocket PC で API を試していませんが、まだそれが現状であると確信しています。

代わりに、電源管理 API を使用して調査し、デバイスをサスペンド モードや無人モードなどの低電力状態にすることをお勧めします。プログラムでデバイスをシャットダウンすることで何を達成しようとしていますか?

于 2009-10-21T11:47:27.217 に答える
0

再起動と電源オフ(シャットダウン)のAPIの方法が異なりますが、何が問題なのかわかりません。

private enum SetSystemPowerStateAction
{
POWER_STATE_ON = 0x00010000、
POWER_STATE_OFF = 0x00020000、
POWER_STATE_SUSPEND = 0x00200000、
POWER_FORCE = 4096、
POWER_STATE_RESET = 0x00800000
}

[DllImport( "coredll.dll"、SetLastError = true)]
static extern int SetSystemオプション);

//オフに
//なぜ再起動するのかわかりませんが??
SetSystemPowerState(null、(int)SetSystemPowerStateAction.POWER_STATE_OFF、(int)SetSystemPowerStateAction.POWER_FORCE);

// 再起動します
SetSystemPowerState(null、(int)SetSystemPowerStateAction.POWER_STATE_RESET、(int)SetSystemPowerStateAction.POWER_FORCE);

于 2010-04-29T08:21:43.793 に答える
0

「通常の」Windows API には ExitWindowsEx() 関数があります。これをチェックしてみてください。ただし、これはOEM に依存しているようです。

于 2008-10-16T06:24:35.397 に答える
0

私が読んだこと(数年前)によると、Windows CEは実際にはシャットダウンするように設計されておらず、サスペンドされた低電力状態になるだけです。モバイル/スマートフォン用であることを忘れないでください。常にオンになっている必要があります。

ExitWindowsEx 関数は役に立つかもしれませんが、次のようになります。

  • .Net/Compact Frameworkではなく、ネイティブ機能です。
  • OEM は、必要な機能を有効にするために実装する必要があります。
  • この機能は、Windows Mobile 5.0 OS 以降にのみ存在します。これは、すべての Windows CE デバイスに存在するという意味ではありません。

職場での個人的な観点から言えば、Windows CE ベースの OS 用に独自のシャットダウンおよび再起動機能を実装しました。そのために多くのコードを書かなければならなかったので、このシャットダウン機能がすべての OS に存在するとは思っていませんでした。

于 2008-10-16T06:55:18.347 に答える