在做项目当中,有一项特殊的客户需求就是软件需要开机自运行,并且在运行期间不能进行关机等特定操作,需要屏蔽任务管理器和注册表等,于是自己把这些写成了通用的类,以后只要直接调用就行!

//类名:EcanSystem
//作用:系统设置及其他
//作者:刘典武
//时间:2010-12-05

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;

namespace Ecan
{
    public class EcanSystem
    {

/// <summary>
        /// 设置程序开机运行
        /// </summary>
        /// <param name="started">是否开机运行</param>
        /// <param name="exeName">要运行的EXE程序名称(不要拓展名)</param>
        /// <param name="path">要运行的EXE程序路径</param>
        /// <returns>成功返回真,否则返回假</returns>

public bool runWhenStart(bool started, string exeName, string path)
        {
            RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
            if (key == null)//如果该项不存在的话,则创建该子项
            {
                key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
            }
            if (started == true)
            {
                try
                {
                    key.SetValue(exeName, path);//设置为开机启动
                    key.Close();
                }
                catch
                {
                    return false;
                }
            }
            else
            {
                try
                {
                    key.DeleteValue(exeName);//取消开机启动
                    key.Close();
                }
                catch
                {
                    return false;
                }
            }
            return true;
        }

/// <summary>
        /// 解禁任务管理器
        /// </summary>
        /// <returns>成功返回真,否则返回假</returns>

public bool enableTaskmgr()
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system", true);//打开注册表子项
            if (key == null)//如果该项不存在的话,则创建该子项
            {
                key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system");
            }
            try
            {
                key.SetValue("disabletaskmgr", 0, RegistryValueKind.DWord);
                key.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }

/// <summary>
        /// 禁用任务管理器
        /// </summary>
        /// <returns>成功返回真,否则返回假</returns>

public bool notEnableTaskmgr()
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system", true);//打开注册表子项
            if (key == null)//如果该项不存在的话,则创建该子项
            {
                key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system");
            }
            try
            {
                key.SetValue("disabletaskmgr", 1, RegistryValueKind.DWord);
                key.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }

/// <summary>
        /// 解禁注册表
        /// </summary>
        /// <returns>成功返回真,否则返回假</returns>

public bool enableRegedit()
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system", true);//打开注册表子项
            if (key == null)//如果该项不存在的话,则创建该子项
            {
                key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system");
            }
            try
            {
                key.SetValue("disableregistrytools", 0, RegistryValueKind.DWord);
                key.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }

/// <summary>
        /// 禁用注册表
        /// </summary>
        /// <returns>成功返回真,否则返回假</returns>

public bool notEnableRegedit()
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system", true);//打开注册表子项
            if (key == null)//如果该项不存在的话,则创建该子项
            {
                key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\policies\\system");
            }
            try
            {
                key.SetValue("disableregistrytools", 1, RegistryValueKind.DWord);
                key.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }

/// <summary>
        /// 结束进程
        /// </summary>
        /// <param name="processName">进程名称</param>
        /// <returns>成功返回真,否则返回假</returns>

public bool killProcess(string processName)
        {
            try
            {
                foreach (Process p in Process.GetProcesses())
                {
                    if (p.ProcessName == processName)
                    {
                        p.Kill();
                    }
                }
                return true;
            }
            catch { return false; }
        }

/// <summary>
        /// 注册控件
        /// </summary>
        /// <param name="dllIdValue">控件注册后对应的键值</param>
        /// <returns>成功返回真,否则返回假</returns>

public bool regDll(string dllIdValue)
        {
            try
            {
                RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"CLSTD\" + dllIdValue, true);//打开注册表子项
                if (key == null)//如果该项不存在的话,则创建该子项
                {
                    key = Registry.ClassesRoot.CreateSubKey(@"CLSTD\" + dllIdValue);
                }
                return true;
            }
            catch { return false; }
        }

/// <summary>
        /// 压缩图片(指定压缩比例值)
        /// </summary>
        /// <param name="fromFile">源文件</param>
        /// <param name="saveFile">保存文件</param>
        /// <param name="bili">比例值(例如0.5)</param>
        /// <returns>成功返回真,否则返回假</returns>

public bool pressImage(string fromFile, string saveFile,double bili)
        {
            Image img;
            Bitmap bmp;
            Graphics grap;
            int width, height;
            try
            {
                img = Image.FromFile(fromFile);
                width = Convert.ToInt32(img.Width * bili);
                height = Convert.ToInt32(img.Height * bili);

bmp = new Bitmap(width, height);
                grap = Graphics.FromImage(bmp);
                grap.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                grap.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                grap.DrawImage(img, new Rectangle(0, 0, width, height));

bmp.Save(saveFile, System.Drawing.Imaging.ImageFormat.Jpeg);

grap.Dispose();
                bmp.Dispose();
                img.Dispose();
                return true;
            }
            catch { return false; }
        }

/// <summary>
        /// 压缩图片(指定高度和宽度)
        /// </summary>
        /// <param name="fromFile">源文件</param>
        /// <param name="saveFile">保存文件</param>
        /// <param name="width">宽度值</param>
        /// <param name="height">高度值</param>
        /// <returns>成功返回真,否则返回假</returns>

public bool pressImage(string fromFile, string saveFile, int width,int height)
        {
            Image img;
            Bitmap bmp;
            Graphics grap;
            try
            {
                img = Image.FromFile(fromFile);

bmp = new Bitmap(width, height);
                grap = Graphics.FromImage(bmp);
                grap.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                grap.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                grap.DrawImage(img, new Rectangle(0, 0, width, height));

bmp.Save(saveFile, System.Drawing.Imaging.ImageFormat.Jpeg);
                
                grap.Dispose();
                bmp.Dispose();
                img.Dispose();
                return true;
            }
            catch { return false; }
        }
    }
}

一个C#资源分享平台,专业分享学习高质量代码,每周期布置学习任务,激发学习C#兴趣!(QQ群:128874886)

C#通用类库--设置开机自运行禁用任务管理器注册表等操作相关推荐

  1. c#设置软件开机自动运行,修改注册表

    #region/// <summary> /// 开机启动项 /// </summary> /// <param name="Started"> ...

  2. outlook邮箱显示一直启动中_win10outlook邮箱怎么设置开机自动运行 - 卡饭网

    windows xp系统下如何设置开机自动运行程 windows xp系统下如何设置开机自动运行程 设置开机自动运行的步骤方法如下: 点击桌面左下角开始菜单,运行设置中的控制面板. 在打开的控制面板中 ...

  3. EC600 QuecPython下载脚本代码到开发板、设置开机自运行

    同专栏的上一篇介绍了 EC600 QuecPython 的开发环境搭建和固件下载,本篇介绍如何 下载脚本代码到开发板.设置开机自运行. 下载脚本到EC600开发板并运行 编辑脚本,建议使用 Pycha ...

  4. 打开计算机打不开运行错误怎么办,注册表打不开,电脑出错注册表编辑器打不开怎么办?...

    原标题:注册表打不开,电脑出错注册表编辑器打不开怎么办? 最近有位朋友在使用电脑的时候,出现了注册表打不开的问题.注册表包含了计算机性能纪录和底层的系统状态信息,以及各类其他数据.有时候,我们需要通过 ...

  5. 硬盘模式兼容性问题不难解决,我们将新电脑的主板设置调整为IDE模式,进入操作系统,修改注册表让操作系统和AHCI匹配:

    硬盘模式兼容性问题不难解决,我们将新电脑的主板设置调整为IDE模式,进入操作系统,修改注册表让操作系统和AHCI匹配:   第一步:在点击开机菜单后,选择菜单中的"运行"栏目.在运 ...

  6. 注册表计算机性能设置怎么应用,巧用Windows注册表保障自己系统安全

    微软Windows注册表是Windows 操作系统的核心.它实质上是一个庞大的数据库,存放有计算机硬件和全部配置信息.系统和应用软件的初始化信息.应用软件和文档文件的关联关系.硬件设备说明以及各种网络 ...

  7. 如何恢复win10被管理禁用的注册表编辑

    如何恢复win10被管理禁用的注册表编辑 方法一:组策略编辑器(一般都会失败,且家庭版没有组策略编辑器) 1.同时按住win+r,然后输入gpedit.msc,打开组策略编辑器 2.在窗口中依次点击& ...

  8. bat脚本如何自动输入y_Linux系统如何设置开机自动运行脚本?

    大家好,我是良许. 在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务.在 Windows 下,我们有很多方法可以设置开机启动,但在 Linux 系统下我们需要如何操作呢? Li ...

  9. Linux系统如何设置开机自动运行脚本?

    点击上方"五分钟学算法",选择"星标"公众号 重磅干货,第一时间送达 在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务.在 Window ...

最新文章

  1. [moka同学笔记转载]Yii 设置 flash消息 创建一个渐隐形式的消息框
  2. MyBufferedReader
  3. python实现英文新闻摘要自动提取_用python机器学习实现新闻关键词的抽取
  4. python:dataframe
  5. 以太坊源码学习 -- EVM
  6. 机器学习资料整理,收藏了不后悔!
  7. 用php求n个分数的和,php关于数组n个随机数分成x组,使每组值相近的算法
  8. C++读取与保持图片
  9. html小圆图堆叠轮播,每次移一张图片的无缝轮播图
  10. notepad文件太大打不开怎么办_U盘数据如何恢复?U盘打不开怎么办?
  11. excel2010设置列宽为像素_职场新手都能学会的Excel技巧:快速调整行高、列宽
  12. ido - 0.2 发布
  13. matlab fspeical,MATLAB数字图像处理.doc
  14. java电脑控制对方手机_电脑控制大师手机专家多控系统-Total Control电脑控制手机助手下载V7.0.0官方电脑端32位/64位最新版-西西软件下载...
  15. 爆肝三个晚上,成功高仿出Win 11的部分界面【持续更新】【萌新也能看的懂】【开源了,强烈建议收藏】
  16. 准提咒LA 观想 3D文字
  17. MAL II,怀槐凝集素II(MAL II)
  18. C++中的模板及其使用
  19. 快速上手 TypeScript
  20. 利用python实现软考成绩实时监控+查询提醒

热门文章

  1. 【Go语言】使用 http 库进行简单的接口测试
  2. MATLAB-M文件
  3. MATLAB 使用CNN拟合回归模型预测手写数字的旋转角度(卷积神经网络)
  4. linux 清理指定大小的文件
  5. linux mount 挂载U盘
  6. linux提取字符串特定结果
  7. qtextbrowser 大量数据卡顿_800万行的数据,Excel 10秒钟就能完成统计?这个工具太良心了!...
  8. mysql触发器 存储过程_mysql触发器和存储过程
  9. 【数据结构与算法】3.二叉搜索树(BST)、c++代码
  10. Caffe学习系列(13):数据可视化环境(python接口)配置