どのようにc#コードでpowercfgの機能を実行できますか?
たとえば、これを実行したいのですが、Setの場合は表示をオフにします。
powercfg -CHANGE -monitor -timeout -ac 0
でそれを呼び出すProcess.Start:
Process.Start("powercfg", "-CHANGE -monitor -timeout -ac 0");
呼び出しProcess.Startて実行可能ファイルを実行できます。
例えば:
Process.Start(fileName: "powercfg", arguments: "-CHANGE -monitor -timeout -ac 0");
ただし、プログラムの実行中に自動オフを無効にしようとしているだけの場合は、WM_SYSCOMMAND代わりにメッセージを処理する必要があります。
例えば:
protected override void WndProc(ref Message m) {
const int SC_SCREENSAVE = 0xF140, SC_MONITORPOWER = 0xF170;
const int WM_SYSCOMMAND = 0x0112;
if (m.Msg == WM_SYSCOMMAND) {
if ((m.WParam.ToInt64() & 0xFFF0) == SC_SCREENSAVE || (m.WParam.ToInt64() & 0xFFF0) == SC_MONITORPOWER) {
m.Result = 0;
return;
}
}
base.WndProc(ref m);
}
このクラスを使用してProcess、C#からpowercfgを実行できます。