簡體   English   中英

如何使用C#鎖定屏幕?

[英]How can I lock the screen using C#?

我只寫了我的第一個C#應用程序,它是一個調度程序。 每小時一次,我想彈出一個對話框並鎖定屏幕兩分鍾,以便休息一下。

到目前為止,我的應用程序只是在“TopMost”上顯示一個表單,它的時間是兩分鍾后打破並隱藏它。

我怎樣才能鎖定屏幕? 類似於Vista中的UAC風格。

Eep,誤讀了你的問題。 Vista的UAC對話框創建了一個新桌面並在其上顯示。 要創建桌面,您可以使用CreateDesktop功能。 然后,您可以使用SwitchDesktop切換到它。

如果您真的想要重新創建安全桌面的外觀,那么您需要先截取屏幕截圖並在表單上顯示,稍微變暗。


下面的原始答案,也可能是有趣的:

看看LockWorkStation功能。

但是,您無法以編程方式再次解鎖工作站。 這是用戶必須自己做的事情。 因此,除非你仍然使用頂級窗口技術拒絕用戶的工作空間,只要兩分鍾還沒有結束,你就不能輕易地進行至少兩分鍾的休息。

作為屏幕抓取的替代方法(我在過去稍微不同的情況下也將其用作方法),您也可以通過創建一個全屏並在所有其他窗口之上的新窗口(WinForm)來實現此目的。 。

如果您將窗口背景顏色設置為純黑色,然后將不透明度設置為70-80%,您將獲得類似於UAC提示的內容。

例如

formName.WindowState = FormWindowState.Maximized; 
formName.FormBorderStyle = FormBorderStyle.None; 
formName.Opacity = 0.70; 
formName.TopMost = true;

當然,在此基礎上繪制一個窗口是明智的,通過計數器告知用戶屏幕為何變暗。

使用看起來像UAC提示(人們習慣於看到)的東西,根本沒有讓人們三思而后行,這取決於用例。

與屏幕抓取方法一樣,它本身並不會阻止用戶通過使用Windows鍵, Alt - TabCtrl - Esc調出“開始”菜單或切換到其他任務來繞過它。

禁用內置鍵命令需要設置與Windows熱鍵相關的注冊表項,並且有點棘手(我認為它需要重新啟動,無法動態切換)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM