关于RegEnumValue,这段代码怎么改? 目的是获得启动项

[复制链接]
查看11 | 回复2 | 2008-7-10 09:59:35 | 显示全部楼层 |阅读模式
HKEY hkey;
TCHAR RegBufferCurrent[100];
TCHAR RegBufferLocal[100];
DWORD dwSize=100;
DWORD dIndex=0;
RegOpenKeyEx(HKEY_CURRENT_USER,TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_ALL_ACCESS,&hkey);
while(RegEnumValue(hkey,dIndex,RegBufferCurrent,&dwSize,NULL,NULL,NULL,NULL)==ERROR_SUCCESS)
{

LSTCURRENT.AddString (&RegBufferCurrent[dIndex]);

dIndex++;
}
RegCloseKey( hkey);

dIndex=0;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_ALL_ACCESS,&hkey);
while(RegEnumValue(hkey,dIndex,RegBufferLocal,&dwSize,NULL,NULL,NULL,NULL)==ERROR_SUCCESS)
{

LSTLOCAL.AddString (&RegBufferLocal[dIndex]);

dIndex++;
}

RegCloseKey( hkey);

回复

使用道具 举报

千问 | 2008-7-10 09:59:35 | 显示全部楼层
原代码有两处错误,下面的代码是改正了的:#include#includeusing namespace std;int main(){ HKEY hkey;TCHAR RegBufferCurrent[100];TCHAR RegBufferLocal[100];DWORD dwSize=100;DWORD dIndex=0;RegOpenKeyEx(HKEY_CURRENT_USER,TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),0,KEY_ALL_ACCESS,&hkey
回复

使用道具 举报

千问 | 2008-7-10 09:59:35 | 显示全部楼层
对有子目录要特殊处理,见下面代码。#include "windows.h"#include #define MAX_KEY_LENGTH 255#define MAX_VALUE_NAME 16383void QueryKey(HKEY hKey) {
TCHAR
achKey[MAX_
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行