2013-03-04 60 views
2

我希望與來自C#應用程序的其他Windows應用程序交互。這應該能夠在後臺完成,而用戶繼續做其他事情。目標應用程序不是我的,但我確實知道它們是什麼,所以它們的UI等。已知。與C#的其他程序互動

我基本上是試圖在各種程序中自動執行各種任務的過程。

到目前爲止,我能想到的唯一解決方案是將代碼切換到相關窗口,並使用鼠標執行任務。 (Controlling the mouse with methods as shown here

當然,這種方法的垮臺是它不能在後臺運行並阻止用戶執行其他任務。

當然,如果這些目標應用程序在仍然在後臺運行時收到「虛假」鼠標點擊,此解決方案將非常棒。所以如果可能的話,請分享!否則,解決這個問題的任何解決方案都將非常出色。

+0

您是否試圖找到任何與訪問Windows中的其他程序鏈接的API? – christopher 2013-03-04 16:03:48

+0

我知道沒有,我猜他們是在那裏,但沒有找到,所以如果你能指出我的方向將是一個偉大的方向。 – Randomman159 2013-03-04 16:05:03

+0

該程序是否暴露了其中特定允許以編程方式操作的API?在一般情況下,實際上並沒有任何東西,它更多的是程序過程中的程序。 – Servy 2013-03-04 16:05:24

回答

4

我只想說,如果沒有其他應用程序的開發人員的合作,您所做的工作將變得非常艱難。但是,您可以使用Windows消息來完成您正在嘗試執行的操作。這是一種在沒有明確通信設置的情況下將信息發送到窗口的方法。你需要使用本地方法來做到這一點,但它非常簡單。但是,要小心,因爲實現這個過程並不像看起來那麼簡單 - 例如,如果您不小心將消息發送到封閉(或不可見)窗口,則可能發生死鎖。

這是太大的一個堆棧溢出後的話題,但這裏有一些相關的功能,讓你開始:

PostMessageSendMessage,你可以用它來發送消息給其他應用程序的主要功能。

this post的答案有如何使用這些函數的一些基本示例。

最後,here是供參考的Windows消息代碼的列表。