有沒有一種方法可以通過編程方式檢測電腦上是否安裝了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