很多时候在调用一些应用程序之前需要先找到应用程序的路径。使用CFileFind类效率较低,如果要寻找一些已经在注册表标明路径的应用程序,通过注册表来寻找不失为一个便捷的途径。下面就是通过注册表寻找应用程序路径的相关代码(以寻找Rar.exe为例,Rar.exe是WinRar的控制台程序):
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
-
-
HKEYhKEY;
-
LPCTSTRRgspath="WinRAR\\shell\\open\\command";
-
LONGret=RegOpenKeyEx(HKEY_CLASSES_ROOT,Rgspath,0,KEY_READ,&hKEY);
-
if(ret!=ERROR_SUCCESS)
- {
- RegCloseKey(hKEY);
-
returnFALSE;
- }
-
-
DWORDdwInfoSize;
-
DWORDtype=REG_SZ;
-
BYTEUserInfo[255];
-
-
-
-
dwInfoSize=sizeof(UserInfo)/sizeof(BYTE);
- ret=RegQueryValueEx(hKEY,NULL,NULL,&type,UserInfo,&dwInfoSize);
-
if(ret!=ERROR_SUCCESS)
- {
-
LPVOIDlpMsgBuf;
-
DWORDdw=GetLastError();
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER|
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL,
- dw,
- MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
-
(LPTSTR)&lpMsgBuf,
- 0,NULL);
-
MessageBox((LPCTSTR)lpMsgBuf,"系统错误",MB_OK|MB_ICONSTOP);
- LocalFree(lpMsgBuf);
- RegCloseKey(hKEY);
-
returnFALSE;
- }
- CStringcsRarAppPath;
-
csRarAppPath.Format("%s",UserInfo);
-
intnCount=csRarAppPath.ReverseFind('\\');
- csRarAppPath=csRarAppPath.Mid(0,nCount);
-
- RegCloseKey(hKEY);
分享到:
相关推荐
VC6 写的注册表操作程序,对注册表的读写操作。
VC写注册表的程序,包含了基本过程,VC写注册表的程序的一个简单例子
注册表监控程序 该程序的作用是记录系统发生的注册表操作,(只记录成功的,忽略失败的) 请使用VC6.0编译,另外需要安装较新的Platform SDK,比如Microsoft Platform SDK for Windows 2003 或 Microsoft Platform...
重装VC6.0前,怎样删除注册表中的vc6.pdf
VC 读注册表获取所有安装程序的信息包括版本,路径,生产厂家,安装位置
VC注册表操作类,实际应用类。各VC版本均可使用。
注册表编程应用实例 API 实例 VC注册表编程应用实例 API 实例 VC注册表编程应用实例 API 实例 VC注册表编程应用实例 API 实例 VC注册表编程应用实例 API 实例 VC注册表编程应用实例 API 实例 VC
VC的简单读写注册表,API调用读写和设置和查询注册表.
vc编写的注册表解析程序,希望对从事注册表解析的SS又所帮助
vc 访问注册表系列操作类。 vc6.0 源代码。
一个简单的例子,模拟安装卸载程序,创建一个注册表,及调用递归函数删除注册表
一款非常小巧好用的VC 注册表修改监控工具,可以监测注册表的内容是否被修改,可设置禁止修改的内容...当时是面向Windows2000写的,含驱动代码,现在公开了源代码,对了解Windows注册表是很不错的参考程序,值得一看。
向注册表中添加键值,演示注册表函数的使用方法
注册表编程.rar,通过该代码可以进行学习和借鉴!
这是mfc做的最短路径演示!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VC程序代码之隐藏标题栏 VC程序代码之隐藏标题栏 VC程序代码之隐藏标题栏
VC程序代码之ASCII码查看器 VC程序代码之ASCII码查看器 VC程序代码之ASCII码查看器
VC注册表编辑器源码 VC注册表编辑器源码
通过vc语言 修改注册表的源代码