• 开机启动


    using System;  
    using System.Windows.Forms;  
    using Microsoft.Win32;  
    namespace RegistryUtil {  
           static class Program {  
                  /// <summary>  
                  /// 应用程序的主入口点。  
                  /// </summary>  
                  [STAThread]  
                  static void Main() {  
                         Application.EnableVisualStyles();  
                         Application.SetCompatibleTextRenderingDefault(false);  
                         SetAutoBootStatu(true);  
                  }  
       
                  /// <summary>  
                  /// 在注册表中添加、删除开机自启动键值  
                  /// </summary>  
                  public static int SetAutoBootStatu(bool isAutoBoot) {  
                         try {  
                                string execPath = Application.ExecutablePath;  
                                RegistryKey rk = Registry.LocalMachine;  
                                RegistryKey rk2 = rk.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run");  
                                if (isAutoBoot) {  
                                       rk2.SetValue("MyExec", execPath);  
                                       Console.WriteLine(string.Format("[注册表操作]添加注册表键值:path = {0}, key = {1}, value = {2} 成功", rk2.Name, "TuniuAutoboot", execPath));  
                                } else {  
                                       rk2.DeleteValue("MyExec", false);  
                                       Console.WriteLine(string.Format("[注册表操作]删除注册表键值:path = {0}, key = {1} 成功", rk2.Name, "TuniuAutoboot"));  
                                }  
                                rk2.Close();  
                                rk.Close();  
                                return 0;  
                         } catch (Exception ex) {  
                                Console.WriteLine(string.Format("[注册表操作]向注册表写开机启动信息失败, Exception: {0}", ex.Message));  
                                return -1;  
                         }  
                  }  
           }  
    }
    

      需要注意的是:
    Windows中微软的注册表信息是分32位和64位的:
    32位:HKEY_LOCAL_MACHINESOFTWAREMicrosoft
    64位:HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft

    以下代码

    RegistryKey rk = Registry.LocalMachine;  
    RegistryKey rk2 = rk.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run");  
    rk2.SetValue("MyExec", execPath);  

    在32位机器上执行,那么没有问题,变量会创建在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下。但是如果在64位机器上执行,会自动创建在
    HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                if (checkBox1.Checked) //设置开机自启动  
                {
                    MessageBox.Show ("设置开机自启动,需要修改注册表","提示");  
                    string path = Application.ExecutablePath;
                    RegistryKey rk = Registry.LocalMachine;
                    RegistryKey rk2 = rk.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
                    rk2.SetValue("JcShutdown", path);
                    rk2.Close();
                    rk.Close();
                }
                else //取消开机自启动  
                {
                    MessageBox.Show ("取消开机自启动,需要修改注册表","提示");  
                    string path = Application.ExecutablePath;
                    RegistryKey rk = Registry.LocalMachine;
                    RegistryKey rk2 = rk.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
                    rk2.DeleteValue("JcShutdown", false);
                    rk2.Close();
                    rk.Close();
                }  
            }
    

      

  • 相关阅读:
    C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比
    SharePoint自动化系列——通过PowerShell创建SharePoint Web
    SharePoint自动化系列——通过PowerShell创建SharePoint Site Collection
    IE11不支持Selenium 2.0的解决方法
    C#中WebBrowser控件的使用
    SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
    多进程监控自动关机工具升级远程关闭多台server——C# works with PowerShell
    通过Windows PowerShell远程管理计算机(精简版)
    .NET项目web自动化测试实战——Selenium 2.0
    HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版
  • 原文地址:https://www.cnblogs.com/xiangxiong/p/6955231.html
Copyright © 2020-2023  润新知