在线等待(散分)!如何通过注册表得到某个应用程的安装目录! 例如:我安装了一个xxx的应用程序,怎么编写软件在注册表里边查找关键字xxx得到该程序的安装目录!或者那位高手有更好的方法,在此先谢过! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 软件安装信息注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall这里每一个子记录集的DisplayName段就是一个software的名字 UninstallString则是反安装需要执行的文件以及参数 meetinghl2002(阿谷)--->你先得知道他记在注册表中哪个位置了??==============程序安装的时候,是系统自动写到注册表去还是编写这个应用程序的人设置它写到那个位置? HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall这里每一个子记录集的DisplayName段就是一个software的名字 UninstallString则是反安装需要执行的文件以及参数 那得看你安装的是什么程序了,每个程序对注册表的操作都可能不一样,但我想大都有规律可寻,如sybase12.0客户端装完后,会在HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI下创建一个Sybase ASE ODBC Driver,里头的Driver键值就是sybase的安装目录 -- zhangnanonnet(鱼欢)shootingstars(有容乃大,无欲则刚)Pipi0714(皮皮0714) ( ) 能找到他的安装目录了!D:\PROGRA~1\Tencent\RTXSDK\ddd.ini,VC里边怎么修改里边的内容阿?VC菜鸟,呵呵 程序安装的时候,是系统自动写到注册表去还是编写这个应用程序的人设置它写到那个位置?当然是编写安装程序的人记录在注册表里的,以后升级什么的都方便。大部分安装程序制作工具都是放到注册表的一个什么installpath之类的键下的,具体我忘了 oidCMacroConfigureDlg::SetOfficePath(){ char szOfflicePath[MAX_PATH]; QueryRegistry( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.exe", "Path", szOfflicePath ); //MessageBox( szOfflicePath ); if( strcmp( szOfflicePath, "" ) != 0 ) { ((CButton* )GetDlgItem( IDBROWSE ))->EnableWindow( FALSE ); m_Edit.EnableWindow( FALSE ); } m_Edit.SetWindowText( szOfflicePath ); return;}void CMacroConfigureDlg::QueryRegistry( LPCTSTR dataSet, LPCTSTR KeyName, char* pDest ){ HKEY hKEY; //begin -- Open Key long ret0=( ::RegOpenKeyEx( HKEY_LOCAL_MACHINE,dataSet,0,KEY_READ,&hKEY ) ); if( ret0!=ERROR_SUCCESS ) return; LPBYTE valueGet = new BYTE[80]; DWORD type_1 = REG_SZ; DWORD cbData_1 = 80; //begin -- Query Key And Get Key's Value long ret1=::RegQueryValueEx(hKEY, KeyName, NULL, &type_1,valueGet,&cbData_1); if(ret1!=ERROR_SUCCESS) return; char strValueGet[100]; wsprintf(strValueGet, "%s", (LPSTR) valueGet); delete[] valueGet; ::RegCloseKey(hKEY); strcpy( pDest, strValueGet ); return;} 程序安装的时候,是系统自动写到注册表去还是编写这个应用程序的人设置它写到那个位置?当然是编写安装程序的人记录在注册表里的,以后升级什么的都方便。大部分安装程序制作工具都是放到注册表的一个什么installpath之类的键下的,具体我忘了 仿任务管理器的内存曲线图,现在遇到了问题,希望得到指点 如何创建一个视图,并绑定到当前文档 xtreme toolkitpro详细使用方法 谈谈大家的工资 CBCGPDockingControlBar添加基于对话框的停靠栏 GCC编译器中的DLL数据共享~~~ 如何让窗口指针有效 莫名其妙的生了星,散分。 CTabCtrl的问题 如何解决串行通信程序的控件问题?? 有没有功能类似于itoa()的API函数(最好是ANSI和Unicode的通用版本)? FormView关闭的问题
注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
这里每一个子记录集的DisplayName段就是一个software的名字 UninstallString则是反安装需要执行的文件以及参数
==============
程序安装的时候,是系统自动写到注册表去还是编写这个应用程序的人设置它写到那个位置?
这里每一个子记录集的DisplayName段就是一个software的名字 UninstallString则是反安装需要执行的文件以及参数
shootingstars(有容乃大,无欲则刚)
Pipi0714(皮皮0714) ( ) 能找到他的安装目录了!D:\PROGRA~1\Tencent\RTXSDK\ddd.ini,VC里边怎么修改里边的内容阿?VC菜鸟,呵呵
当然是编写安装程序的人记录在注册表里的,以后升级什么的都方便。大部分安装程序制作工具都是放到注册表的一个什么installpath之类的键下的,具体我忘了
CMacroConfigureDlg::SetOfficePath()
{
char szOfflicePath[MAX_PATH];
QueryRegistry( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.exe",
"Path", szOfflicePath );
//MessageBox( szOfflicePath );
if( strcmp( szOfflicePath, "" ) != 0 ) {
((CButton* )GetDlgItem( IDBROWSE ))->EnableWindow( FALSE );
m_Edit.EnableWindow( FALSE );
} m_Edit.SetWindowText( szOfflicePath );
return;
}void
CMacroConfigureDlg::QueryRegistry( LPCTSTR dataSet, LPCTSTR KeyName, char* pDest )
{
HKEY hKEY; //begin -- Open Key
long ret0=( ::RegOpenKeyEx( HKEY_LOCAL_MACHINE,dataSet,0,KEY_READ,&hKEY ) );
if( ret0!=ERROR_SUCCESS ) return; LPBYTE valueGet = new BYTE[80];
DWORD type_1 = REG_SZ;
DWORD cbData_1 = 80; //begin -- Query Key And Get Key's Value
long ret1=::RegQueryValueEx(hKEY, KeyName, NULL, &type_1,valueGet,&cbData_1);
if(ret1!=ERROR_SUCCESS) return;
char strValueGet[100];
wsprintf(strValueGet, "%s", (LPSTR) valueGet);
delete[] valueGet; ::RegCloseKey(hKEY);
strcpy( pDest, strValueGet );
return;
}
当然是编写安装程序的人记录在注册表里的,以后升级什么的都方便。大部分安装程序制作工具都是放到注册表的一个什么installpath之类的键下的,具体我忘了