zoukankan      html  css  js  c++  java
  • 程序开机自动运行

    c#版本:

            private bool SetAutoRun(bool onFlag)
            {
                bool bRet = true;
                try
                {
                    string path = Application.ExecutablePath;
                    RegistryKey rk = Registry.LocalMachine;
                    RegistryKey rk2 = rk.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
    
                    if (onFlag)
                    {
                        rk2.SetValue("you app name", path);
                    }
                    else
                    {
                        rk2.DeleteValue("you app name", false);
                    }
                    
                    rk2.Close();
                    rk.Close();
                }
                catch (System.Exception ex)
                {
                    bRet = false;
                    lblmsg.Text = "exception:" + ex.Message;
                    MessageBox.Show(ex.Message);
                }            
                
                return bRet;
            }

    c++ 版本:

    void CAutoDlg::SetAutoRun(BOOL bAutoRun)
    {
        HKEY hKey;
        CString strRegPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run";//找到系统的启动项
        if (bAutoRun)
        {
            if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) //打开启动项
            {
                TCHAR szModule[_MAX_PATH];
                GetModuleFileName(NULL, szModule, _MAX_PATH);//得到本程序自身的全路径
                RegSetValueEx(hKey, "AUTODLG", 0, REG_SZ, (const BYTE*)(LPCSTR)szModule, strlen(szModule)); //添加一个子Key,并设置值,"AUTODLG"是应用程序名字(不加后缀.exe)
                RegCloseKey(hKey); //关闭注册表
            }
            else
            {
                PRINTF(LEVEL_INFO, Logger, LOG_FILE_LINE, "%s", "系统参数错误,不能随系统启动");
            }
        }
        else
        {
            if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
            {
                RegDeleteValue(hKey, "AUTODLG");
                RegCloseKey(hKey);
            }
        }
    }

    相信对需要的你是有用得,好用请说声谢谢。

  • 相关阅读:
    1467E. Distinctive Roots in a Tree(可持久化线段树+树上差分)
    1473E. Minimum Path(最短路+三维DP)
    LeetCode88. 合并两个有序数组
    LeetCode75. 颜色分类
    LeetCode80. 删除排序数组中的重复项 II
    定义企业结构-后勤配置
    查看清账凭证
    表T043S中,XXXX输入丢失
    过账,未清项管理,银行中转科目
    PK码
  • 原文地址:https://www.cnblogs.com/zhangmo/p/13821791.html
Copyright © 2011-2022 走看看