電源をサスペンド状態にする方法【Windows API】
プログラムからパソコンの電源をサスペンド(スタンバイ)状態にします。 プログラムの終了時にサスペンドモードにしておきたい場合などに重宝します。
void SetSuspendMode()
{
HANDLE hToken;
TOKEN_PRIVILEGES tknPrvlgs;
OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES, &hToken);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&(tknPrvlgs.Privileges[0].Luid));
tknPrvlgs.PrivilegeCount = 1;
tknPrvlgs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tknPrvlgs, 0, NULL, NULL);
SetSystemPowerState(TRUE, FALSE);
}まとめ
今回でWindows APIシリーズも一旦の最終回となります。10年以上前の2007年に連載開始されたこのシリーズも歴史的使命を終えつつあります。Windows APIを実際の業務で使っている人も、いまは僅かでしょう。そもそもC++でプログラムをつくる案件が、いまどれくらい残っているのかも不明です。Web全盛の時代です。
復活する日まで、さようなら!
