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

时间:2021-11-26 05:55:00

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

// 类名: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)