2

how can run functions of powercfg by c# code?
for example I want to run this, for Set turn off the display: never

powercfg -CHANGE -monitor -timeout -ac 0 
SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
sari k
  • 2,051
  • 6
  • 28
  • 34

3 Answers3

6

Call it with Process.Start:

Process.Start("powercfg", "-CHANGE -monitor -timeout -ac 0");
Oded
  • 489,969
  • 99
  • 883
  • 1,009
5

You can call Process.Start to run an executable.

For example:

Process.Start(fileName: "powercfg", arguments: "-CHANGE -monitor -timeout -ac 0");

However, if you're only trying to disable auto-off while your program is running, you should handle the WM_SYSCOMMAND message instead.

For example:

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);
}
SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
1

You can use the Process class to run powercfg from C#.

Klaus Byskov Pedersen
  • 117,245
  • 29
  • 183
  • 222