[英]Turning monitor off using mono (C#)
我有以下代碼可以關閉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下使用mono做同樣的事情(如果有幫助,請使用Debian)。 顯然,我無法使用user32.dll,因此想知道是否有人知道該怎么做?
有關此的一些額外信息; 我正在使用樹莓派,而xset和setterm命令僅使屏幕空白。 為了真正關閉屏幕,我不得不使用tvservice -o
(關閉)和tvservice -p
(打開)。 我沒有發現任何內置方式可以執行相同的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.