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

时间:2022-09-04 14:16:02

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

C#通用类库--设置开机自运行禁用任务管理器注册表等操作//类名: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(00, 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(00, width, height));

                bmp.Save(saveFile, System.Drawing.Imaging.ImageFormat.Jpeg);
                
                grap.Dispose();
                bmp.Dispose();
                img.Dispose();
                
return true;
            }
            
catch { return false; }
        }
    }
}
C#通用类库--设置开机自运行禁用任务管理器注册表等操作


 

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