Как можно запускать функции powercfg с помощью кода C #? - PullRequest
1 голос
/ 24 ноября 2010

как можно запускать функции powercfg с помощью кода c #?
например, я хочу запустить это, для Set отключить отображение: никогда

powercfg -CHANGE -monitor -timeout -ac 0 

Ответы [ 3 ]

5 голосов
/ 24 ноября 2010

Вы можете вызвать 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);
}
5 голосов
/ 24 ноября 2010

Позвоните по номеру Process.Start:

Process.Start("powercfg", "-CHANGE -monitor -timeout -ac 0");
1 голос
/ 24 ноября 2010

Вы можете использовать класс Process для запуска powercfg из C #.

...