C#通用类库--设置开机自运行禁用任务管理器注册表等操作
在做项目当中,有一项特殊的客户需求就是软件需要开机自运行,并且在运行期间不能进行关机等特定操作,需要屏蔽任务管理器和注册表等,于是自己把这些写成了通用的类,以后只要直接调用就行!
//作用:系统设置及其他
//作者:刘典武
//时间: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#设置软件开机自动运行,修改注册表
#region/// <summary> /// 开机启动项 /// </summary> /// <param name="Started"> ...
- outlook邮箱显示一直启动中_win10outlook邮箱怎么设置开机自动运行 - 卡饭网
windows xp系统下如何设置开机自动运行程 windows xp系统下如何设置开机自动运行程 设置开机自动运行的步骤方法如下: 点击桌面左下角开始菜单,运行设置中的控制面板. 在打开的控制面板中 ...
- EC600 QuecPython下载脚本代码到开发板、设置开机自运行
同专栏的上一篇介绍了 EC600 QuecPython 的开发环境搭建和固件下载,本篇介绍如何 下载脚本代码到开发板.设置开机自运行. 下载脚本到EC600开发板并运行 编辑脚本,建议使用 Pycha ...
- 打开计算机打不开运行错误怎么办,注册表打不开,电脑出错注册表编辑器打不开怎么办?...
原标题:注册表打不开,电脑出错注册表编辑器打不开怎么办? 最近有位朋友在使用电脑的时候,出现了注册表打不开的问题.注册表包含了计算机性能纪录和底层的系统状态信息,以及各类其他数据.有时候,我们需要通过 ...
- 硬盘模式兼容性问题不难解决,我们将新电脑的主板设置调整为IDE模式,进入操作系统,修改注册表让操作系统和AHCI匹配:
硬盘模式兼容性问题不难解决,我们将新电脑的主板设置调整为IDE模式,进入操作系统,修改注册表让操作系统和AHCI匹配: 第一步:在点击开机菜单后,选择菜单中的"运行"栏目.在运 ...
- 注册表计算机性能设置怎么应用,巧用Windows注册表保障自己系统安全
微软Windows注册表是Windows 操作系统的核心.它实质上是一个庞大的数据库,存放有计算机硬件和全部配置信息.系统和应用软件的初始化信息.应用软件和文档文件的关联关系.硬件设备说明以及各种网络 ...
- 如何恢复win10被管理禁用的注册表编辑
如何恢复win10被管理禁用的注册表编辑 方法一:组策略编辑器(一般都会失败,且家庭版没有组策略编辑器) 1.同时按住win+r,然后输入gpedit.msc,打开组策略编辑器 2.在窗口中依次点击& ...
- bat脚本如何自动输入y_Linux系统如何设置开机自动运行脚本?
大家好,我是良许. 在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务.在 Windows 下,我们有很多方法可以设置开机启动,但在 Linux 系统下我们需要如何操作呢? Li ...
- Linux系统如何设置开机自动运行脚本?
点击上方"五分钟学算法",选择"星标"公众号 重磅干货,第一时间送达 在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务.在 Window ...
最新文章
- [moka同学笔记转载]Yii 设置 flash消息 创建一个渐隐形式的消息框
- MyBufferedReader
- python实现英文新闻摘要自动提取_用python机器学习实现新闻关键词的抽取
- python:dataframe
- 以太坊源码学习 -- EVM
- 机器学习资料整理,收藏了不后悔!
- 用php求n个分数的和,php关于数组n个随机数分成x组,使每组值相近的算法
- C++读取与保持图片
- html小圆图堆叠轮播,每次移一张图片的无缝轮播图
- notepad文件太大打不开怎么办_U盘数据如何恢复?U盘打不开怎么办?
- excel2010设置列宽为像素_职场新手都能学会的Excel技巧:快速调整行高、列宽
- ido - 0.2 发布
- matlab fspeical,MATLAB数字图像处理.doc
- java电脑控制对方手机_电脑控制大师手机专家多控系统-Total Control电脑控制手机助手下载V7.0.0官方电脑端32位/64位最新版-西西软件下载...
- 爆肝三个晚上,成功高仿出Win 11的部分界面【持续更新】【萌新也能看的懂】【开源了,强烈建议收藏】
- 准提咒LA 观想 3D文字
- MAL II,怀槐凝集素II(MAL II)
- C++中的模板及其使用
- 快速上手 TypeScript
- 利用python实现软考成绩实时监控+查询提醒
热门文章
- 【Go语言】使用 http 库进行简单的接口测试
- MATLAB-M文件
- MATLAB 使用CNN拟合回归模型预测手写数字的旋转角度(卷积神经网络)
- linux 清理指定大小的文件
- linux mount 挂载U盘
- linux提取字符串特定结果
- qtextbrowser 大量数据卡顿_800万行的数据,Excel 10秒钟就能完成统计?这个工具太良心了!...
- mysql触发器 存储过程_mysql触发器和存储过程
- 【数据结构与算法】3.二叉搜索树(BST)、c++代码
- Caffe学习系列(13):数据可视化环境(python接口)配置