设置MFC程序开机自动启动
2016-04-25 16:40
344 查看
//设置程序开机启动
BOOL AutoBootSet()
{
HKEY hKey;
//找到系统的启动项
CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
//打开启动项Key
long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);
if(lRet == ERROR_SUCCESS)
{
TCHAR pFileName[MAX_PATH] = {0};
//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
_tcscat(pFileName, _T(" -auto"));
//添加一个子Key,并设置值, 下面应用程序名字(不加后缀.exe)
lRet = RegSetValueEx(hKey, _T("AppName"), 0, REG_SZ, (LPBYTE)pFileName, (lstrlen(pFileName) + 1)*sizeof(TCHAR));
//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
{
return false;
}
return true;
}
return false;
}
//取消程序开机启动
BOOL AutoBootCancel()
{
HKEY hKey;
//找到系统的启动项
CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);
if(lRet == ERROR_SUCCESS)
{
RegDeleteValue(hKey, _T("AppName"));
//关闭注册表
RegCloseKey(hKey);
return true;
}
return false;
}
//判断程序是否开机自动启动
BOOL IsAutoBoot()
{
LPWSTR *szArglist = NULL;
int nArgs = -1;
BOOL bRet = FALSE;
szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs);
if((NULL == szArglist) || (nArgs == 2))
{
if (_tcsicmp(szArglist[1], _T("-auto")) == 0)
{
bRet = TRUE; //开机启动
}
else
{
bRet = FALSE;
}
}
else
{
bRet = FALSE;
}
LocalFree(szArglist);
return bRet;
}
BOOL AutoBootSet()
{
HKEY hKey;
//找到系统的启动项
CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
//打开启动项Key
long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);
if(lRet == ERROR_SUCCESS)
{
TCHAR pFileName[MAX_PATH] = {0};
//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
_tcscat(pFileName, _T(" -auto"));
//添加一个子Key,并设置值, 下面应用程序名字(不加后缀.exe)
lRet = RegSetValueEx(hKey, _T("AppName"), 0, REG_SZ, (LPBYTE)pFileName, (lstrlen(pFileName) + 1)*sizeof(TCHAR));
//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
{
return false;
}
return true;
}
return false;
}
//取消程序开机启动
BOOL AutoBootCancel()
{
HKEY hKey;
//找到系统的启动项
CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);
if(lRet == ERROR_SUCCESS)
{
RegDeleteValue(hKey, _T("AppName"));
//关闭注册表
RegCloseKey(hKey);
return true;
}
return false;
}
//判断程序是否开机自动启动
BOOL IsAutoBoot()
{
LPWSTR *szArglist = NULL;
int nArgs = -1;
BOOL bRet = FALSE;
szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs);
if((NULL == szArglist) || (nArgs == 2))
{
if (_tcsicmp(szArglist[1], _T("-auto")) == 0)
{
bRet = TRUE; //开机启动
}
else
{
bRet = FALSE;
}
}
else
{
bRet = FALSE;
}
LocalFree(szArglist);
return bRet;
}
相关文章推荐
- Linux Cmake源码安装
- Implementing Redlines(Android)
- 【转载】iOS提示框,为什么你应该使用 MBProgressHUD?
- android-Ultra-Pull-To-Refresh 源码解析
- 团队第一阶段站立会议07
- NBUT [1464] Biggest Number dfs
- CDH报错cloudera-scm-server dead but pid file exists
- iOS-仿网易云音乐控制器
- Matlab计算机视觉/图像处理工具箱推荐
- HTML5移动端手机网站开发流程
- swift中 ?? 运算符的使用, 类似于 ?: 运算符
- JQuery的extend扩展方法
- jquery利用正则表达式验证密码,手机号(主要是使用方法,正则表达式网上一搜一堆)
- 远程数据库连接
- 如何设置SVN提交时强制添加注释
- sprintf
- iOS 邮箱、手机号、身份证....正则表达式
- linux ubuntu下JDK版本修改问题
- spring4 hibernate4(5) 整合
- iOS-仿百度卫士动画