返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >基于C#实现电脑系统挂机锁
  • 735
分享到

基于C#实现电脑系统挂机锁

C#电脑系统挂机锁C#电脑挂机锁C#电脑 挂机 2022-12-19 06:12:29 735人浏览 泡泡鱼
摘要

目录实践过程效果代码实践过程 效果 代码 public partial class FORM1 : Form { public Form1() {

实践过程

效果

代码

public partial class FORM1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private Point mouseOffset;//鼠标位置
    private bool isMouseDown = false;//表示鼠标是否按下
    private void pictureBox2_Click(object sender, EventArgs e)
    {
        Application.Exit();//窗体的关闭按钮
    }

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        int xOffset;
        int yOffset;
        if (e.Button == MouseButtons.Left)
        {
            xOffset = -e.X;
            yOffset = -e.Y;
            mouseOffset = new Point(xOffset, yOffset);
            isMouseDown = true;
        }
    }

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (isMouseDown)
        {
            Point mousePos = Control.MousePosition;
            mousePos.Offset(mouseOffset.X, mouseOffset.Y);
            Location = mousePos;
        }
    }

    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            isMouseDown = false;
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (txtPwd.Text.Trim() == "" || txtPwd2.Text.Trim() == "")//判断是否输入密码
        {
            MessageBox.Show("请输入密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }
        else
        {
            if (txtPwd2.Text.Trim() == txtPwd.Text.Trim())//如果两次密码输入一致
            {
                Form2 frm2 = new Form2();//实例化Form2窗体
                frm2.s = this.Size;//传递窗体大小
                frm2.x = this.Location.X;//传递窗体的X坐标
                frm2.y = this.Location.Y;//传递窗体的Y坐标
                frm2.infos = txtInfo.Text.Trim();//传递挂机信息
                frm2.pwd = txtPwd2.Text.Trim();//传递解密码
                this.Hide();//隐藏当前窗体
                frm2.ShowDialog();//打开Form2窗体
            }
            else
            {
                MessageBox.Show("两次密码不一致!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }
    public Size s;//获取鼠标活动的区域
    public int x;//获取鼠标活动区域的X坐标
    public int y;//获取鼠标活动区域的Y坐标
    public string infos;//获取挂机信息
    public string pwd;//获取解锁密码
    myHook h = new myHook();//实例化公共类
    private void Form2_Load(object sender, EventArgs e)
    {
        label1.Location = new Point(x,y-50);//设置显示挂机信息的位置
        label1.Text = infos;//显示挂机信息
        base.Opacity = 0.5;//设置挂机界面透明度
        h.InsertHook();//安装钩子
    }

    private void Form2_MouseMove(object sender, MouseEventArgs e)
    {
        Cursor.Clip = new Rectangle(x, y, s.Width, s.Height);//设置鼠标活动的区域
    }

    private void Form2_MouseClick(object sender, MouseEventArgs e)
    {
        Form3 frm3 = new Form3();//实例化Form3窗体
        frm3.x = x;//传递X坐标
        frm3.y = y;//传递Y坐标
        frm3.infos = infos;//传递挂机信息
        frm3.pwd = pwd;//传递解锁密码
        frm3.ShowDialog();//打开解锁界面
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        Process[] p = Process.GetProcesses();//获取所有系统运行的进程
        foreach (Process p1 in p)//遍历进程
        {
            try
            {
                //如果进程中存在名为“taskmgr”,则说明任务管理器已经打开   
                if (p1.ProcessName.ToLower().Trim() == "taskmgr")
                {
                    p1.Kill();//关掉任务管理器的进程
                    Cursor.Clip = new Rectangle(x, y, s.Width, s.Height);//重新设置鼠标活动的区域
                    return;
                }
            }
            catch
            {
                return;
            }
        }
    }

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        h.UnInsertHook();//卸载钩子
        timer1.Stop();//停止计时器
    }
}
public partial class Form3 : Form
{
    public Form3()
    {
        InitializeComponent();
    }
    public int x;//鼠标活动区域的X坐标
    public int y;//鼠标活动区域的Y坐标
    public string infos;//挂机界面显示的信息
    public string pwd;//解锁密码
    private void Form3_Load(object sender, EventArgs e)
    {
        this.TopMost = true;//设置停靠在最前端
        this.Location = new Point(x, y);//设置窗体位置
        lblinfo.Text = infos;//显示挂机信息
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (txtPwd.Text.Trim() == pwd)//判断输入的密码是否正确
        {
            Application.Exit();//如果正确则退出挂机界面
        }
        else//否则
        {
            lblinfo.Text = "输入解锁密码错误,请重新输入!";//提示错误信息
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.TopMost = false;//取消停靠最前的设置
        this.Close();//关闭窗体
    }
}
public class myHook
{
    private IntPtr pKeyboardHook = IntPtr.Zero;//键盘钩子句柄
    public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);// 钩子委托声明
    //键盘钩子委托实例不能省略变量
    private HookProc KeyboardHookProcedure;
    //底层键盘钩子
    public const int idHook = 13;
    //安装钩子
    [DllImport("user32.dll", CallinGConvention = CallingConvention.StdCall)]
    public static extern IntPtr SetwindowsHookEx(int idHook, HookProc lpfn,
        IntPtr pInstance, int threadId);
    //卸载钩子
    [DllImport("user32.dll", CallingConvention = CallingConvention.StdCall)]
    public static extern bool UnhookWindowsHookEx(IntPtr pHookHandle);
    //键盘钩子处理函数
    private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
    {
        KeyMSG m = (KeyMSG)Marshal.PtrToStructure(lParam, typeof(KeyMSG));
        if (pKeyboardHook != IntPtr.Zero)
        {
            switch (((Keys)m.vkCode))
            {
                case Keys.LWin:
                case Keys.RWin:
                case Keys.Delete:
                case Keys.Alt:
                case Keys.Escape:
                case Keys.F4:
                case Keys.Control:
                case Keys.Tab:
                    return 1;
            }
        }
        return 0;
    }
    //安装钩子
    public bool InsertHook()
    {
        IntPtr pIn = (IntPtr)4194304;
        if (this.pKeyboardHook == IntPtr.Zero)
        {
            this.KeyboardHookProcedure = new HookProc(KeyboardHookProc);
            this.pKeyboardHook = SetWindowsHookEx(idHook, KeyboardHookProcedure, pIn, 0);
            if (this.pKeyboardHook == IntPtr.Zero)
            {
                this.UnInsertHook();
                return false;
            }
        }

        return true;
    }
    //卸载钩子
    public bool UnInsertHook()
    {
        bool result = true;
        if (this.pKeyboardHook != IntPtr.Zero)
        {
            result = (UnhookWindowsHookEx(this.pKeyboardHook) && result);
            this.pKeyboardHook = IntPtr.Zero;
        }
        return result;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct KeyMSG
    {
        public int vkCode;
        public int scanCode;
        public int flags;
        public int time;
        public int dwExtrainfo;
    }
}

到此这篇关于基于C#实现电脑系统挂机锁的文章就介绍到这了,更多相关C#电脑系统挂机锁内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于C#实现电脑系统挂机锁

本文链接: https://lsjlt.com/news/175184.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于C#实现电脑系统挂机锁
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-19
    C#电脑系统挂机锁 C#电脑挂机锁 C#电脑 挂机
  • 基于Python实现电影售票系统
    目录一、系统要求二、用户信息三、主要代码四、效果图展示一、系统要求 电影售票系统程序,应具备以下几点功能: 1.用户认证 系统用户分为用户、管理员两个角色,系统可根据不同用户角色权限...
    99+
    2024-04-02
  • 基于C++实现酒店管理系统
    现今大多数宾馆所提供的服务样式都各式各样,规模大小也是各有不同,但是归总下来,不可或缺的两类模块还是顾客和工作人员。由于对宾馆行业内部没有很深刻的理解,此次系统设计包括数据库和功能模...
    99+
    2024-04-02
  • 基于C++实现信息管理系统
    基于c++设计的信息管理系统,供大家参考,具体内容如下 1、使用类+函数实现2、使用STL容器的vector3、fstream的文件存储方式4、xls文件读入 写出5、数据的四大功能...
    99+
    2024-04-02
  • 基于C++实现职工管理系统
    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 利用C++来实现一个基于多态的职工管理...
    99+
    2024-04-02
  • 基于C#实现宿舍管理系统
    目录前言一、项目创建二、主页面设计三、主页面代码1.登录按钮2.退出按钮3.注册按钮4.SQL配置5.主页总体代码前言 本次项目主要是因为我们的大作业要求要求,因为网上C#的资源不太...
    99+
    2024-04-02
  • 电脑影子系统能不能防锁机
    这篇“电脑影子系统能不能防锁机”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑影子系统能不能防锁机”文章吧。影子系统能防锁...
    99+
    2023-07-01
  • 基于Java+SSM实现电影院购票系统
    目录项目介绍效果图展示实现逻辑代码MovieControllerNewsControllerIndexControllerUserController项目介绍 基于Spring,Sp...
    99+
    2024-04-02
  • 基于Python如何实现电影售票系统
    基于Python如何实现电影售票系统,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、系统要求电影售票系统程序,应具备以下几点功能:用户认证系统用户分为用户、管...
    99+
    2023-06-22
  • 基于C语言实现学生管理系统
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 1.目标要求: 1.学生成绩管理系统2.可增、删、改、查、浏览3.数据保存在文件中 2.C语言代码: ...
    99+
    2024-04-02
  • 基于C++如何实现信息管理系统
    这篇“基于C++如何实现信息管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C++如何实现信息管理系统”文章吧。使...
    99+
    2023-06-29
  • 基于C++如何实现职工管理系统
    这篇文章主要介绍了基于C++如何实现职工管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C++如何实现职工管理系统文章都会有所收获,下面我们一起来看看吧。1、管理系统需求职工管理系统可以用来管理公司内...
    99+
    2023-06-30
  • 基于C#如何实现宿舍管理系统
    本篇内容主要讲解“基于C#如何实现宿舍管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于C#如何实现宿舍管理系统”吧!一、项目创建首先通过创建C#的Windows窗体应用程序,名字可以自...
    99+
    2023-07-02
  • 基于Python怎么实现随机点名系统
    效果展示创建一个这样的文件夹,然后把要随机点名的名字写在里面导入后,这里就显示你导入了多少人员信息点击开始点名后,会随机从导入名字里挑选一位幸运儿~效果大概就是这样,下面我们来看看代码吧代码展示导入模块里面有第三方模块,需要大家自己安装一下...
    99+
    2023-05-24
    Python
  • 基于java springboot + mybatis实现电影售票管理系统
    目录主要功能实现前端主要功能实现后台主要功能实现主要截图展示前台影院首页电影信息电影详情电影评价选座功能选座主要前端代码设计提交订单影片订单详情/取票影院信息影院详情资讯信息我的个人...
    99+
    2024-04-02
  • C++基于Floyd算法实现校园导航系统
    本文实例为大家分享了C++基于Floyd算法实现校园导航系统的具体代码,供大家参考,具体内容如下 首先是配置文件 //文件名'MGraph.h' //用途:创建邻接矩阵 #inclu...
    99+
    2024-04-02
  • 基于C++如何实现简单的音乐系统
    本篇内容介绍了“基于C++如何实现简单的音乐系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现步骤第一:你需要了解 Beep 函数,不了...
    99+
    2023-07-04
  • 基于C++实现一个简单的音乐系统
    目录一、前言二、实现步骤三、代码实现四、讲解程序一、前言 2022临近尾声,2023即将来临。 过去的一年,我们同努力,我们共欢笑.。 每一次成功都蕴藏着我们辛勤的劳动。 新的一年即...
    99+
    2022-12-29
    C++音乐系统 C++声音系统 C++ Beep
  • c++实现值机系统
    本项目为大家分享了c++实现值机系统的具体代码,供大家参考,具体内容如下 前言 上周帮同学做了一个项目作业,具体要求见下图,实现语言为c++。今天决定在此复盘这个程序编写的思路,具体...
    99+
    2024-04-02
  • 完整的医院就诊挂号系统基于Spring MVC + Spring + MyBatis实现
    目录一、语言和环境二、实现效果三、实现代码资源下载:点此下载 一、语言和环境 1.实现语言: JAVA语言。 2.环境要求: MyEclipse/Eclipse + Tomcat +...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作