C++添加注册表项

问题描述:

我在我的CPP代码中添加了当前程序启动时的以下内容。我试图修改代码来为启动添加一个不同的程序,比如说我想添加一个密钥,以便在启动时运行“C:\ mytime.exe”。你能帮我修改代码吗?C++添加注册表项

TCHAR szPath[MAX_PATH]; 
DWORD pathLen = 0; 

pathLen = GetModuleFileName(NULL, szPath, MAX_PATH); 
if (pathLen == 0) 
{ 
    return -1; 
} 
HKEY newValue; 
if (RegOpenKey(HKEY_CURRENT_USER, 
    TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 
    &newValue) != ERROR_SUCCESS) 
{ 
    return -1; 
} 
DWORD pathLenInBytes = pathLen * sizeof(*szPath); 
if (RegSetValueEx(newValue, 
    TEXT("My Program"), 
    0, 
    REG_SZ, 
    (LPBYTE)szPath, 
    pathLenInBytes) != ERROR_SUCCESS) 
{ 
    RegCloseKey(newValue); 
    return -1; 
} 
RegCloseKey(newValue); 
return TRUE; 
+3

你有什么实际试过?这段代码是否工作? – slugonamission 2013-02-21 18:04:12

+0

你为什么不缩进任何东西? – 2013-02-21 18:06:54

+0

您的应用程序是否具有更改该特定注册表项所需的权限? – 2013-02-21 18:26:44

只需更换此块的代码:

pathLen = GetModuleFileName(NULL, szPath, MAX_PATH); 
if (pathLen == 0) 
{ 
    return -1; 
} 

有了这个:

/* of course, use your own executable - make sure to not overflow the buffer! */ 
_tcscpy(szPath, _T("C:\\*.exe")); 
pathLen = _tcslen(szPath); 
+0

谢谢Nik!这正是我所要求的。 – Drek 2013-02-21 18:53:30