如何打开注册表编辑器并定位到某个键或值

zhugay 2009-08-11 08:48:38
const char * spath = "C:\\windows\\NOTEPAD.EXE";
char sparam[MAX_PATH*2+10];
sprintf(sparam,"/select,%s",spath);
::ShellExecute(0,"open","explorer.exe",sparam ,NULL,SW_SHOWNORMAL);

这是打开文件的办法,打开注册表并选定又该如何?
...全文
152 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesky395 2009-08-12
比较简单的方法是先修改HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit下的LastKey键值,然后打开注册表编辑器。。。
回复
fly4free 2009-08-12
哦~~~~,原来如此

那楼主的意思可能是,“定位某键
比如输入某命令,就直接打开注册表编辑器,然后定位到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

这个键处于展开+选中状态……之类的
回复
dahai9825 2009-08-11
这个是你要的吗?

...Administrator>explorer.exe /select,c:\windows\system32\regedt32.exe
回复
MoXiaoRab 2009-08-11
这个select很奇怪
回复
fly4free 2009-08-11
我总觉得楼上两楼,没有理解楼主问的是啥意思……
我也不明白,顺便问问楼主,你的问题是啥意思? /select 参数 效果是啥啊?
回复
flyoxs 2009-08-11
lz请参考:
怎样在VC++中访问和修改注册表:http://www.hackbase.com/lib/2006-01-03/12857.html
http://topic.csdn.net/t/20040722/19/3201070.html
回复
zoulie 2009-08-11
打开一个键的函数:RegOpenKeyEx
函数定义:LONG RegOpenKeyEx(HKEY hKey,//已经打开的键的句柄,或者直接是上述几个根键
LPCTSTR lpSubKey,//要打开的子键名字的地址
DWORD ulOptions,//保留值,必须为0
REGSAM samDesired,//打开方式,如读还是写
PHKEY phkResult//返回的打开的子键的句柄
);

查询某一个键值:RegQueryValueEx
函数定义:LONG RegQueryValueEx(HKEY hKey,//要查询的键的句柄
LPCTSTR lpValueName,//要查询的键值的名称
LPDWORD lpReserved,//保留值
LPDWORD lpType,//要查询的数据的类型
LPBYTE lpData,//要返回的查询的数据
LPDWORD lpcbData//预置的数据的长度
);

设置一个键值RegSetValueEx
函数定义:LONG RegSetValueEx(HKEY hKey,//要设置的键的句柄
LPCTSTR lpValueName,//要访问的键值的名称
LPDWORD lpReserved,//保留值
DWORD dwType,//要设置的数据的类型
const BYTE *lpData,//要设置的健值
DWORD cbData//数据的长度
);
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告