有没有一种方法可以通过编程方式检测电脑上是否安装了Outlook(其任何版本) 。我必须在非托管C++中执行此操作。检查电脑上是否安装了Outlook
4
A
回答
2
在MSDN is an example of how to detect Outlook版本(或者如果安装了Outlook的话)。下面是该示例的美化版本:
#include <Windows.h>
#include <Msi.h>
#include "stdafx.h"
static int compareOutlookVersion(const TCHAR* exe)
{
const TCHAR outlookRegister[][MAX_PATH] = {
TEXT("{E83B4360-C208-4325-9504-0D23003A74A5}"), // Outlook 2013
TEXT("{1E77DE88-BCAB-4C37-B9E5-073AF52DFD7A}"), // Outlook 2010
TEXT("{24AAE126-0911-478F-A019-07B875EB9996}"), // Outlook 2007
TEXT("{BC174BAD-2F53-4855-A1D5-0D575C19B1EA}") // Outlook 2003
};
const int outlookVersions[] = {
2013,
2010,
2007,
2003
};
DWORD pathLength = 0;
for (int i = 0; i < (sizeof(outlookVersions)/sizeof(outlookVersions[0])); i++)
if (ERROR_SUCCESS ==
MsiProvideQualifiedComponent(
outlookRegister[i],
exe,
(DWORD) INSTALLMODE_DEFAULT,
NULL,
&pathLength
)) {
return outlookVersions[i];
}
return 0;
}
int getOutlookVersion(int* bits)
{
int version;
*bits = 32;
version = compareOutlookVersion(TEXT("outlook.exe"));
if (version) {
return version;
}
*bits = 64;
version = compareOutlookVersion(TEXT("outlook.x64.exe"));
if (version) {
return version;
}
*bits = 0;
return 0; // No Outlook found.
}
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT result;
int version;
int bits;
version = getOutlookVersion(&bits);
if (version) {
printf("Outlook %d, %d bit\n", version, bits);
} else {
printf("No Outlook found.\n");
}
return 0;
}
1
Outlook暴露了一个COM接口,只是检查该接口?
1
MSalters,你的意思是像下面的代码:
::CoInitialize(NULL);
_ApplicationPtr pApp;
HRESULT hr;
hr = pApp.CreateInstance(__uuidof(Outlook::Application));
if ((pApp == NULL) || FAILED(hr))
{
return false;
}
2
检查的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE
的存在,它的“Default
”值包含路径exe文件。
相关问题
- 1. 如何检查我的电脑上是否安装了mongodb
- 2. 检查电话上是否安装了verisign根证书
- 3. 如何检查JAI和Java3D是否安装在PC或笔记本电脑上?
- 4. 如何检查Mininet是否已成功安装在我的电脑上?
- 5. 检查是否安装了sqlite.net 3.5
- 6. 检查是否安装了软件包
- 7. GWT检查是否安装了闪存
- 8. 检查Java是否安装了Bash
- 9. 检查是否安装了dll
- 10. gwt检查是否安装了jre
- 11. 检查是否安装了Yahoo Messenger
- 12. 检查是否安装了咕噜声?
- 13. 检查是否安装了J#框架
- 14. 检查是否安装了memcached?
- 15. 在电脑上安装android
- 16. 如何检测Java是否安装在我的电脑从JavaScript?
- 17. 检查安装时是否安装了android应用程序
- 18. 检查Facebook是否安装在Android上
- 19. 安装jar检查是否已安装
- 20. 如何判断oracle数据库是否安装在电脑上
- 21. 是否可以在我的电脑上安装SQL Server 2000?
- 22. 检查IIS是否安装?
- 23. 检查Solidworks是否安装?
- 24. WPF检查系统上是否安装了python
- 25. 如何检查Windows CE上是否安装了SQL Server CE
- 26. 确认/检查iPhone上是否安装了配置文件
- 27. 如何检查Windows系统上是否安装了程序
- 28. 检查计算机上是否安装了Microsoft Security Essentials
- 29. 检查设备上是否安装了特定证书
- 30. 检查计算机上是否安装了磁带库
您能否提供一些示例? – 2009-09-02 07:13:26