在做项目当中,有一项特殊的客户需求就是软件需要开机自运行,并且在运行期间不能进行关机等特定操作,需要屏蔽任务管理器和注册表等,于是自己把这些写成了通用的类,以后只要直接调用就行!
//
类名: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 ; }
}
}
}
// 作用:系统设置及其他
// 作者:刘典武
// 时间: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)