VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2154|回复: 10

为什么我设置了开机启动后,没有开机自启,而是打开了C:\Documents呢?

[复制链接]
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-7-29 18:50:54 | 显示全部楼层 |阅读模式
我用这个设置了电脑开机,软件自动启动功能
CBoot m_boot;

BOOL CReminderDlg::OnInitDialog()
{
        m_boot.AutoBootSet();
}
BOOL CBoot::AutoBootSet()
{
        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)   
        {
                TCHAR pFileName[MAX_PATH] = {0};
                DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
                _tcscat(pFileName, _T(" -auto"));
                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;
}
但电脑开机后,软件却没有自动启动,却打开了C:\Documents
为什么我设置了开机启动后,没有开机自启,而是打开了C:Documents呢?

请问各位,这要如何解决?




上一篇:我用PostMessage最小化后,发现SetTimer用不了了,请问咋解决?
下一篇:【实用C++】零基础入门教程43课IO操作打开和关闭疑问!
51_avatar_middle
最佳答案
82 
online_admins 发表于 2019-7-29 21:27:58 | 显示全部楼层
到注册表的:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run 这个位置看下,肯定是路径没写全!
应该是宽窄字节的事儿
75_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-29 21:47:22 | 显示全部楼层
Syc 发表于 2019-7-29 21:27
到注册表的:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run 这个位置看下,肯定是路径没写全!
应该 ...

大哥,啥都没看到哈,咋回事哈

为什么我设置了开机启动后,没有开机自启,而是打开了C:Documents呢?

51_avatar_middle
最佳答案
82 
online_admins 发表于 2019-7-29 21:50:40 | 显示全部楼层
cumulonimbus 发表于 2019-7-29 21:47
大哥,啥都没看到哈,咋回事哈

那就检查下为什么没写进去,RegSetValueEx 函数执行失败了吗?
75_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-29 21:54:03 | 显示全部楼层
Syc 发表于 2019-7-29 21:27
到注册表的:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run 这个位置看下,肯定是路径没写全!
应该 ...

找到了
为什么我设置了开机启动后,没有开机自启,而是打开了C:Documents呢?

点开看了一下
C:\Documents and Settings\Administrator\桌面\程序进行写作中20190729\测试\reminder.exe -auto

没发现啥问题哈?
75_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-29 22:00:03 | 显示全部楼层
Syc 发表于 2019-7-29 21:50
那就检查下为什么没写进去,RegSetValueEx 函数执行失败了吗?

写进去了,请看楼下的图示
75_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-29 22:20:05 | 显示全部楼层
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

请问这个是写入HKEY_CURRENT_USER,还是写入HKEY_LOCAL_MACHINE中的?
20_avatar_middle
最佳答案
0 
online_vip 发表于 2019-8-3 16:08:24 | 显示全部楼层
路径含有空格的话,要加双引号。
  1. "C:\Documents and Settings\Administrator\桌面\程序进行写作中20190729\测试\reminder.exe" -auto
复制代码

20_avatar_middle
最佳答案
0 
online_vip 发表于 2019-8-3 22:56:01 | 显示全部楼层
  1. CBoot m_boot;

  2. BOOL CReminderDlg::OnInitDialog()
  3. {
  4.         m_boot.AutoBootSet();
  5. }
  6. BOOL CBoot::AutoBootSet()
  7. {
  8.         HKEY hKey;
  9.         CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
  10.         long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);   
  11.         if(lRet == ERROR_SUCCESS)   
  12.         {
  13.                 TCHAR pFileName[MAX_PATH] = {0};
  14.                 // 添加第一个双引号
  15.                 *pFileName = _T('"');
  16.                 // 因为第一个字符设置为双引号,所以缓冲区偏移一个字符
  17.                 DWORD dwRet = GetModuleFileName(NULL, pFileName + 1, MAX_PATH - 1);
  18.                 // 添加第二个双引号和参数
  19.                 _tcscat(pFileName, _T("" -auto"));
  20.                 lRet = RegSetValueEx(hKey, _T("AppName"), 0, REG_SZ, (LPBYTE)pFileName,  (lstrlen(pFileName) + 1)*sizeof(TCHAR));   
  21.                 RegCloseKey(hKey);
  22.                 if(lRet != ERROR_SUCCESS)
  23.                 {
  24.                         return false;
  25.                 }
  26.                 return true;
  27.         }
  28.         return false;
  29. }
复制代码
75_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-8-8 20:09:29 | 显示全部楼层

谢谢。我找到问题了,是因为我把代码写在了新的类中,我把类中的程序放在了对话框程序中,问题就解决了。再次谢谢!
85_avatar_middle
最佳答案
0 
在线会员 发表于 2019-10-15 10:24:19 | 显示全部楼层
根键写错了吧 是HKEY_LOCAL_MACHINE
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-25 11:03

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表