如何判断某个软件是否安装,比如判断Excel是否安装?谢谢!
解决方案 »
- 如何实现dll导入静态lib(不是调用)
- 菜鸟问题,函数可以编译生成DLL,类咋就不成呢?
- 麻烦大家评评我朋友这份简历
- DialogBar 怎么让它出来就浮动?
- 初学者遇难题,请高手指条明路
- 如何在按钮上动态加载bmp的图片,并且不让他在界面刷新的时候被清除掉????
- 关于Receive()的等待问题
- 在对话框中加载了位图作为背景,想把控件做成透明的(有些控件在属性设置时有Transparent选项,但即使选中后,也不能形成透明效果)不知如
- 调查一下:请问大家有多少人是真正的程序员,又有多少人不想干程序员了??
- NAT类型判断?
- VS2003配的MSDN里VC部分是不是英文的呀?
- 特郁闷的一个问题,在线等!
try
{
建立EXCEL的实例对象,如果成功
return true
}
catch
{
return false
}
Article ID : 289634
安装过的软件在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
中
我以前用查注册表的方法:
安装过的软件在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
中 对excel可以,其他的可能就不行了
一般的软件还是有的
{
ShellExecute(this->m_hWnd,"open",
"Excel.exe","","",
SW_HIDE );
return true
}
catch
{
return false
}
{
ShellExecute(this->m_hWnd,"open",
"Excel.exe","","",
SW_HIDE );
return true
::SendMessage(hExcel,WM_COLSE,0,0);
}
catch
{
return false
}
void CTest2Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CRegKey key,key1;
DWORD dwIndex=0,lpcbname=100,ret=0;
char T_name[100];
FILETIME lpftlast;
int i=0;
if (key.Open(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall")==ERROR_SUCCESS)
{
for(i=0;ret==ERROR_SUCCESS;i++,dwIndex++)
{
ZeroMemory(T_name,100);
lpcbname=100; ret=RegEnumKeyEx(key,dwIndex,T_name,&lpcbname,
NULL,NULL,NULL,&lpftlast);
if (ret==ERROR_SUCCESS)
if (key1.Open(key,T_name)==ERROR_SUCCESS)
{
ZeroMemory(T_name,100);
lpcbname=100;
if (key1.QueryValue(T_name,"DisplayName",&lpcbname)==ERROR_SUCCESS)
{
m_list.InsertString(-1,T_name);
if (strstr(T_name,"Microsoft Office")!=NULL)
MessageBox("Microsoft Office 已安装");
}
key1.Close();
}
} key.Close();
}
else
MessageBox("Error");}