1

ボタンのクリックで現在使用しているWindowsでモニターをオフにする次のコードがあります。

[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, int Msg, int wParam, int lParam);
const int SC_MONITORPOWER = 0xF170;
const int WM_SYSCOMMAND = 0x0112;
const int MONITOR_ON = -1;
const int MONITOR_OFF = 2;
const int MONITOR_STANBY = 1;
int onFlag = 0;

private void MonitorOff()
{
    SendMessage(-1, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
    onFlag = 1;
}

private void MonitorOn()
{
    if (onFlag == 1)
    {
        SendMessage(-1, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);
        onFlag = 0;
    }
}

このコードは正常に動作します。Linux(違いがある場合はDebian)でmonoを使用して同じことをしたいと思います。明らかに私は user32.dll を利用できないので、誰かがこれを行う方法を知っているかどうか疑問に思っていましたか?

これを達成する組み込みの方法がない場合は、これらのコマンドを利用できると思います...

4

1 に答える 1

0

A little bit of extra information on this; I am using a raspberry pi and the xset and setterm commands only blank the screen. In order to actually turn off the screen I had to make use of tvservice -o (turns off) and tvservice -p (turn on). I did not find any built in way in mono to perform the same actions.

于 2013-04-15T14:54:54.513 に答える