公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#實現Window系統桌面鎖定效果

admin
2025年5月10日 18:33 本文熱度 320
前言

在C# 中如何實現Windows 系統鎖定屏幕的效果,本文通過使用Windows API 中的設置前臺窗口方法SetForegroundWindow和獲取前臺窗口方法GetForegroundWindow方法實現。

SetForegroundWindow:是將指定的窗口(通過其句柄 hWnd)設置為前臺窗口,并激活它(即獲得焦點)。

方法簽名:

private static extern bool SetForegroundWindow(IntPtr hWnd);

IntPtr:hWnd 目標窗口的句柄。

return:true   成功設置窗口為前臺窗口。

return:false  失敗(可能由于權限不足或窗口不可見)。

GetForegroundWindow:的作用是獲取當前處于前臺活動狀態的窗口的句柄。

方法簽名:

private static extern IntPtr GetForegroundWindow();

IntPtr:hWnd 當前處于前臺活動狀態的窗口。

通過上面的方法僅是設置活動窗口,鎖定桌面。那么如何解除鎖定呢?最簡單的方式當然是通過按鈕關閉,但是又不能如此簡單,那就是加密碼判斷,所以需要添加按鈕和文本框,輸入正確的密碼解除鎖定。

 為了更炫酷一點的,程序中還添加一個密碼面板區域實時移動顯示效果。


功能

1、程序運行鎖定屏幕。

2、輸入密碼解鎖屏幕。

3、初始密碼123456。


功能預覽
由于運行程序后無法截圖,所以不展示運行效果。



代碼

public partial class FrmLockScreen : Form{    private System.Timers.Timer timer;    private System.Timers.Timer timerMove;    private int speedX = 2;    private int speedY = 1;    public FrmLockScreen()    {        InitializeComponent();    }    private void FrmLockScreen_Load(object sender, EventArgs e)    {        this.Activated += FrmLockScreen_Activated;        this.WindowState = FormWindowState.Maximized;        this.Opacity = 0.5D;        this.TopMost = true;        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;        this.Location = new System.Drawing.Point(            (Screen.PrimaryScreen.Bounds.Width - 400) / 2,            (Screen.PrimaryScreen.Bounds.Height - 300) / 2);
        this.panel.BackColor = SystemColors.Window;        this.tbx_Password.KeyDown += FrmLockScreen_KeyDown;
        timer = new System.Timers.Timer();        timer.Interval = 100;        timer.Elapsed += Timer_Tick;        timer.Start();
        timerMove = new System.Timers.Timer();        timerMove.Interval = 30;        timerMove.Elapsed += TimerMove_Elapsed;        timerMove.Start();    }
    private void FrmLockScreen_KeyDown(object sender, KeyEventArgs e)    {        if (e.KeyCode == Keys.Enter)        {            UnlockButton_Click(this,null);        }    }    /// <summary>    /// 定時更新密碼框面板位置    /// </summary>    private void TimerMove_Elapsed(object sender, System.Timers.ElapsedEventArgs e)    {        panel.Invoke(new Action(() =>        {            // 更新位置            int newX = panel.Location.X + speedX;            int newY = panel.Location.Y + speedY;            // 邊界檢測            if (newX <= 0 || newX + panel.Width >= this.ClientSize.Width)                speedX = -speedX;
            if (newY <= 0 || newY + panel.Height >= this.ClientSize.Height)                speedY = -speedY;            // 應用新位置            panel.Location = new Point(newX, newY);        }));    }    /// <summary>    /// 強制切回當前窗口    /// </summary>    private void Timer_Tick(object sender, EventArgs e)    {        this.Invoke(new Action(() =>        {            //獲獲取當前處于前臺(活動狀態)的窗口            //如果當前程序不是前臺窗口,設置當前程序窗口為前臺窗口。            if (GetForegroundWindow() != this.Handle)            {                SetForegroundWindow(this.Handle);            }        }));    }    /// <summary>    ///  強制當前窗口到前臺    /// </summary>    private void FrmLockScreen_Activated(object sender, EventArgs e)    {         SetForegroundWindow(this.Handle);    }
    private void UnlockButton_Click(object sender, EventArgs e)    {        if (tbx_Password.Text == "123456")        {            timer.Stop();            timerMove.Stop();            this.Close();        }        else        {            MessageBox.Show("密碼錯誤");        }        return;    }
    [DllImport("user32.dll")]    private static extern bool SetForegroundWindow(IntPtr hWnd);    [DllImport("user32.dll")]    private static extern IntPtr GetForegroundWindow();}

總結

    該案例通過強制某個窗口顯示在最前面(即便是其他程序窗口在運行)。通過定時器定時檢測當前活動窗口,判斷用戶是否試圖切換到其他窗口,如果是則強制切回鎖定窗口,達到鎖定屏幕的效果。


該文章在 2025/5/10 18:33:20 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产av动漫一二区 | 国产人妻熟女在线观看高清完整 | 国产盗摄精品一二区 | 福利姬液液酱喷水网站在线观看 | 精品无码av人在线观看国产 | 国偷自产av一区二区三区吞精 | 精品无码无码一级毛片免费 | 精品人妻中文一区二区中文 | 国产成人鲁鲁免费视频 | 精品无码成人网站久久久久久 | 国产成人精品综合久久66 | 国产亚洲一区二区手机在线观 | 国产精品无码永久免费男叫 | 国产午夜精品一区二区三区嫩草 | 精品福利一区二区三区在线观 | 苍井空一区二区三区av高清 | 69久久夜色精品国产69小说 | 国产无码h在线播放 | 国产三级主播在线观看 | 国产aⅴ精品一区二 | 91精品欧美一 | 国精品无码一区二 | 国产一区二区三区高潮老年人 | 国产人视频成 | 国产成人精品88综合久久久久 | 极品尤物一区二区三区 | 97无码人妻免费视频碰碰碰 | 国产成人一区二区三区欧美 | 99精品国产一区二区 | 97精品国产自在现线免费观看 | 苍井空一区二区波多野结衣 | 国产成年无码久久久久下载 | 91成人亚洲综合欧美日韩 | 国产黄色软件 | 2025国产精品国产精华 | 国产成人垃圾片一区二区三区 | 国产综合久久久久影院 | 国产福利电影一区二区三区 | 高潮喷浆视频在线播放 | 国产高清在线播放免费观看一区 | 国产视频一区在线 |