2012-12-11 56 views
2

我需要知道我剛剛通過CreateObject("xxx.xxx")運行的COM對象的CLSID,我該如何得到它?什麼是我剛剛在Visual Basic中運行的COM對象的CLSID

TIA! 拉法爾

+3

[CLSIDFromProgID()](http://msdn.microsoft.com/en-us/library/windows/desktop/ms688386(v = vs.85).aspx)和[StringFromCLSID()](http:/ /msdn.microsoft.com/en-us/library/windows/desktop/ms683917(v=vs.85).aspx)正確導入到您的VB應用程序可能是你所尋求的。使用API​​並避免錘擊註冊表。我不熟悉VB.NET,以及它是否具有本地API,但它可能會作爲COM互操作層的一部分。如果是這樣,請使用它。 – WhozCraig

+0

hm ...什麼是我的ProgID()?這是我傳遞給CreateObject的字符串嗎? –

+1

@ Intelligent-Infrastructure:ProgId是你傳遞給'CreateObject'的字符串,是的,你的'xxx.xxx'在上面。 –

回答

1

我不認爲你可以直接從VB本身獲得的信息(例如,作爲一個副作用或致電CreateObject二次結果),但你可以在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\xxx.xxx閱讀registry entry,然後看它的CLSID key

+0

搜索註冊表不是我的解決方案我需要它強大:/ –

+1

@ Intelligent-Infrastructure:通過註冊表**進行搜索**強大。這就是'CreateObject'的工作原理! (更不用說絕大多數Windows本身。) –

+1

確實。如果你不喜歡它的工作方式,有點無意使用CreateObject()。改爲添加對類型庫的引用。 –

相關問題