您的位置:首页 > 编程语言 > C#

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

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

//类名: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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: