2011-05-30 57 views
0

大家好 我有在vb.net外敷一個usercontrol的手柄。 我知道該用戶控件的類類型。 我想獲得該對象的引用來檢查該對象的一些屬性。 這是可能的和如何? 感謝獲取參考的一個對象

回答

0

我希望我明白你的問題吧...

您可以嘗試插入到你的庫引用(我假設你的用戶控件這個庫)。作爲一個先決條件,這個外部應用程序必須使用.Net編寫或具有某種類型的COM接口!

那麼你可以嘗試通過

NAMESPACE.CLASS myReference = new NAMESPACE.CLASS(); 

心連心

+0

感謝親愛的 讓我補充對這個問題的更多信息。 我可以在正在運行的.net應用程序中處理一些控件。 現在我想訪問這些控件之一的對象來閱讀一些屬性。但不包括該控件的文本。而是該類的公共財產。 所有這些都是在用vb.net編寫的另一個應用程序中完成的。 我不想創建該類的新實例。我想訪問完全的對象引用,並且只有該控件的句柄(通過API)。 有什麼想法? – hnp2500 2011-05-30 07:19:18

+0

我不太清楚你的意思。如果你掌握了這個控件,那麼你已經有了某種對象的引用......你的意思是什麼類型的API。也許反射可能有一些用處...(http://msdn.microsoft.com/en-us/library/ms173183(v=vs.80).aspx)你可以發佈你的源代碼嗎?! – 2011-05-30 08:01:52

0

訪問控件類可以使用互操作,與像GetWindowTextSendMessage某些功能得到一些信息,但是這不會讓你獲得所有的屬性,並且不能在每種類型的應用程序上工作(WPF或Java想到)。

+0

謝謝親愛的 讓我們再添加一些關於這個問題的信息。 我可以在正在運行的.net應用程序中處理一些控件。 現在我想訪問這些控件之一的對象來閱讀一些屬性。但不包括該控件的文本。而是該類的公共財產。 所有這些都是在用vb.net編寫的另一個應用程序中完成的。 有什麼想法? – hnp2500 2011-05-30 07:15:22

-1

Control類有一個方法FromHandle:

Dim myCtrl As knownType = Control.FromHandle(knownHandle) 
'then get the known property using Reflection 
Dim oProp As System.Reflection.PropertyInfo = myCtrl.GetType.GetProperty("KnownProperty") 
Dim oValue As Object = oProp.GetValue(myCtrl, Nothing) 
'or directly: 
Dim oValueD as Object = myCtrl.knownProperty 

我不知道它是否工作進程之間。