实战基础技能(13)--------C#代码实现隐藏任务栏、开始菜单和禁用任务管理器

一:截图,主要是调用系统接口和更改注册表实现功能

二:代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Microsoft.Win32;

namespace 关机一键锁定
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        #region 隐藏、显示任务栏

         [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(String className, String captionName);

        [DllImport("user32.dll")]
        public static extern bool ShowWindow(IntPtr hwnd, uint nCmdShow);

        //隐藏光标
        [DllImport("user32.dll", EntryPoint = "ShowCursor")]
        public static extern bool ShowCursor(bool bShow);
        //ShowCursor(false);
        private void btnHideToolBar_Click(object sender, RoutedEventArgs e)
        {
            // 获得任务栏和开始菜单的句柄
            var rwl = FindWindow("Shell_TrayWnd", null);
            var rwl2 = FindWindow("Button", null);

            if (btnHideToolBar.Content == "隐藏")//当nCmdShow=0---隐藏;nCmdShow=1---显示
            {
                ShowWindow(rwl2,1 );
                ShowWindow(rwl, 1);
                ShowCursor(true);
                btnHideToolBar.Content = "显示";
            }
            else
            {

                ShowWindow(rwl2, 0);
                ShowWindow(rwl, 0);
                ShowCursor(false);
                btnHideToolBar.Content = "隐藏";
            }
        }
        #endregion
//禁用、启用任务管理器
        private void btnManageForm_Click(object sender, RoutedEventArgs e)
        {

            if (btnManageForm.Content == "禁用")//当nCmdShow=0---隐藏;nCmdShow=1---显示
            {
                //禁用本机的任务管理器
                Registry.SetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableTaskMgr", 1);
                //禁用当前用户任务管理器
                Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableTaskMgr", 1);
                btnManageForm.Content = "启用";
            }
            else
            {
                //禁用本机的任务管理器
                Registry.SetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableTaskMgr", 0);
                //禁用当前用户任务管理器
                Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableTaskMgr", 0);
                btnManageForm.Content = "禁用";
            }
        }

    }
}

三:后记

如果这些代码将任务栏和开始菜单隐藏掉,仅想通过界面鼠标操作恢复还是有点难度的,希望用的朋友不要擅自用于别人电脑。

时间: 2024-10-10 21:29:14

实战基础技能(13)--------C#代码实现隐藏任务栏、开始菜单和禁用任务管理器的相关文章

实战基础技能(02)-----------类,属性,构造函数和方法打死都要快速区分

一:做项目时经常会看见很对自定义的类,一定要快速的识别才能正确的理解项目代码 二:区分 类:很好区分,有Class修饰 方法:有返回值的描述,新的方法名 构造函数:没有返回值,有类名 属性:主要是get 和set标志,可能会有自定义的类型有一定的迷惑性 实战基础技能(02)-----------类,属性,构造函数和方法打死都要快速区分,布布扣,bubuko.com

实战基础技能(07)--------WPF的登录界面的排版

一:截图 二:XAML代码 <Window x:Class="wpf练习.登录窗体" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="登录窗体" Height="200" Width="

实战基础技能(08)--------MVVM模式中WPF数据的完全绑定

一:截图,描述:将后台代码的姓名.年龄绑定到文本框,单击”增加年龄“--年龄自+1,单击”显示年龄“--弹出年龄的显示对话框,实现了从文本框修改年龄和后台更改年龄并显示到文本框 运行结果和解决方案管理截图如下: 二:person类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; namespace 完全数据绑定 {

实战基础技能(06)--------object sender C#有个毛作用

button1_Click(object sender,EventHandler e) { Button button=(Button)sender; button.Text="text property has been changed at its event"; } object 是事件的激发控件,或叫事件源:具体我们可以用MessageBox.Show(sender.ToString())直接输出,我们可以直接看到; 如果一个按钮button1,我点击这个按钮﹕sender就是

实战基础技能(07)--------DEV控件的Gridview小技巧总结

1.设置Gridview控件的某列不可编辑 this.gridData.gridView1.Columns["change_date"].OptionsColumn.AllowEdit = false; 字段:change_date是数据库中字段,是绑定到gridview上的. 2.设置Gridview控件整体不可编辑 this.gridData.IsEnableEdit = false; 3.设置Gridview控件,列头不可排序 this.gridDataDetail.gridVi

实战基础技能(21)--------多数据拼凑成表插入到数据库中

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; namespace TechnologyProject.项目管理.加计扣除.ERP导入 { public partia

实战基础技能(18)--------用ASP.NET调用Web Service

打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebService引到当前的工程里面.方法是:在资源管理器中点击右键,选择添加Web 引用,调出对话框: 在URL中填入,前面写好的WebService运行后浏览器上面显示的地址,点击“前往”按钮,如上图,就会显示出所引用的WebService中可以调用的方法,然后点击“添加引用”,就将webservice引用到了当前的工程里面 ,如下图,解决方案中会出现

实战基础技能(25)--------sql存储过程的创建

一:没有参数的存储过程 CREATE PROCEDURE select_all AS BEGIN SELECT * from T_login1 END GO 二:带参数的存储过程 CREATE PROCEDURE select_name @id uniqueidentifier AS BEGIN SELECT * from T_login1 where PSN0001A=@id END GO 三:带通配符参数存储过程 alter proc proc_findStudentByName @name

实战基础技能(12)--------C#程序注销、重启、关机和锁定电脑

一:截图 二:源代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.