簡體   English   中英

獲取另一個exe的控件名稱

[英]getting control names of another exe

您好,我有一個相當具體的問題,請考慮我的道歉,如果這不是一個標准的堆棧溢出問題,我需要知道是否有可能得到另一個exe的所有控件名稱,例如

我有ac#應用程序,我想得到我的計算機上運行的另一個獨立應用程序的所有控件名稱b.exe所以如果b.exe有一個文本框和一個按鈕,我想在我的c#中有文本框和按鈕的名稱exe和我也希望有一個b.exe的點擊事件的監聽器

到目前為止,無論我研究過什么都沒什么特別的,實際上我不想要完整的代碼快照,我只想要一個指導方針,我能做到這一點嗎? 還是winapi? 請解釋什么是pinvoke和winapi,是否可以通過申請掛鈎? 再次,我需要一個指導方式,所以請幫我解決這個問題,我知道我可以通過pinvoke或winapi獲得活躍的Windows名稱,但我的要求有點高

1。 訪問控件名稱:

不幸的是我沒有.NET(C#),但在Visual C ++下這是不可能的。

原因是:控件在可執行文件中不再有名稱,但名稱只是轉換為數字。

示例“myTextControl”在可執行文件中為1234。 編譯時,有關控件(原始)名稱的信息完全丟失。

2。 訪問其他可執行文件中的控件:

我認為在.NET(C#)下它並不像在本機編程語言(直接訪問Windows API)下那么容易,但只要知道了數字(例如1234),就可以訪問其他可執行文件的控件。

因此,您必須找到包含控件的對話框窗口的窗口句柄,然后您可以向控件發送消息。 不幸的是,許多包含指針的消息都需要一些非常棘手的黑客攻擊。 沒有指針的消息運行良好。

3。 在其他可執行文件中為控件創建偵聽器:

在另一個EXE中的控件上創建一個監聽器(例如點擊監聽器)是可能的,但是非常棘手:這需要編寫一個本機(這意味着:不是.NET / C#)DLL文件,然后將其與Windows API函數“SetWindowsHookEx結合使用”。

我不認為已經存在.NET API(C#所需),因為這只有很少的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM