1
A
回答
3
谷歌搜索「枚舉的ActiveX控件」把這個作爲第一個結果:
雖然我想補充一點,你不需要調用AddRef()
上pCatInfo
因爲CoCreateInstance()
調用,爲你。
這是我會怎麼做:
#include <cstdio>
#include <windows.h>
#include <comcat.h>
int main()
{
// Initialize COM
::CoInitializeEx(NULL, COINIT_MULTITHREADED);
// Obtain interface for enumeration
ICatInformation* catInfo = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_StdComponentCategoriesMgr,
NULL, CLSCTX_INPROC_SERVER, IID_ICatInformation, (void**)&catInfo);
// Obtain an enumerator for classes in the CATID_Control category.
IEnumGUID* enumGuid = NULL;
CATID catidImpl = CATID_Control;
CATID catidReqd = CATID_Control;
catInfo->EnumClassesOfCategories(1, &catidImpl, 0, &catidReqd, &enumGuid);
// Enumerate through the CLSIDs until there is no more.
CLSID clsid;
while((hr = enumGuid->Next(1, &clsid, NULL)) == S_OK)
{
BSTR name;
// Obtain full name
::OleRegGetUserType(clsid, USERCLASSTYPE_FULL, &name);
// Do something with the string
printf("%S\n", name);
// Release string.
::SysFreeString(name);
}
// Clean up.
enumGuid->Release();
catInfo->Release();
::CoUninitialize();
return 0;
}
1
由於某些原因,例如其他賽格發佈我的故障。 這裏是我的刺吧:
https://gist.github.com/810398
雖然是C代碼似乎並沒有列舉所有的人都適合我。 有關更多的答案,請參見how do you enumerate WIN32OLE available servers?,我想。
相關問題
- 1. 如何列出所有ActiveX控件?
- 2. 寶石列表沒有列出所有已安裝的寶石
- 3. 如何在Windows XP中列舉/列出所有已安裝的應用程序?
- 4. 在64位IE中安裝ActiveX控件
- 5. 在android上列出所有已安裝的證書
- 6. 如何使用flexera installshield製作安裝IE ActiveX控件的msi安裝程序?
- 7. 如何獲取所有已安裝字體的列表?
- 8. 我的Eclipse RCP代碼如何列出所有已安裝的功能?
- 9. Nix shell:如何列出已安裝的Haskell軟件包版本
- 10. 如何列出已安裝的grunt插件
- 11. Internet Explorer何時/爲何阻止(簽名)ActiveX控件的安裝?
- 12. 手動安裝ActiveX組件
- 13. 如何替換現有的ActiveX控件?
- 14. 刪除所有已安裝的OpenCV庫
- 15. 列出已安裝的應用程序
- 16. 列出已安裝的python站點包?
- 17. IE上沒有出現ActiveX控件
- 18. 自動安裝activeX
- 19. perl如何安裝在文本文件中列出的所有依賴關係?
- 20. 用於列出所有已安裝的USB設備的UDisks腳本
- 21. 如何列出影子卷中的所有已修改文件?
- 22. 如何在mac os x上列出所有已安裝的軟件包和版本?
- 23. 如何重新安裝NetBeans?所有可用的組件(包和運行時)已經安裝,如何繼續?
- 24. 從exe導出ActiveX控件
- 25. 通過JavaScript檢索所有已安裝打印機的列表
- 26. 在Android手機中列出所有已安裝或支持的語言
- 27. 在Internet Explorer中調試ActiveX控件的安裝
- 28. 如何讓ActiveX安裝提示顯示安裝的ActiveX是否具有舊版本
- 29. 生成用於VB6的VB.Net端口的AxInterop ActiveX控件包裝ActiveX控件
- 30. 如何在Symbain 3rd版本中安裝已安裝的軟件?
現在,如果我能弄清楚如何從Powershell做到這一點,那就太棒了。一個指向C#或VBScript的指針會讓我更接近這一點。 – 2011-05-11 21:43:20