2009-07-03 130 views
0

從Windows句柄中獲取對象

如果您知道一個對象類型,並且擁有該對象的句柄(hwnd),是否有方法將它變成一個變量?

例如:

Set myObj = Magic(hwnd)

+0

「對象」沒有hWnds,窗戶可以。當然,一個對象可能有一個或多個窗口,例如「重」ActiveX控件有一個窗口。 – Bob77 2009-07-03 21:37:59

回答

0

HWNDs只是由操作系統映射到內部對象(它們可以並且可以回收)的數字。你不能真的把它變成任何東西。

你希望myObj在你的例子中做什麼?所有用於處理windowss的Windows API都採用HWND。

+0

我真正想要做的是響應另一個應用程序中的控件中的事件。起初,我想我只是讀了消息隊列(這是什麼使我開始在hwnd路上)。但後來我意識到我必須把它放在某種計時器中,並繼續閱讀隊列。所以我想:「好吧,如果我能得到對象,我可以用事件來回應它的事件。」 – Oorang 2009-07-03 02:48:01

0

您可能可以使用GetObject()用於COM,但它確實有侷限性 - 您無法爲其中一個指定特定的hWnd。

例如,您可以使用GetObject(「」,Excel.Application)獲取正在運行的Excel實例,但是如果有多個運行實例,則不會知道哪個將返回並且無法指定。