回答
UIAutomation就是答案。這是一篇關於CodeProject的有趣文章。
http://www.codeproject.com/Articles/289028/White-An-UI-Automation-tool-for-windows-applicatio
謝謝大家的答案。我曾嘗試過Microsoft UI自動化和白色框架。他們兩人都很完美。謝謝 – 2013-04-18 11:35:02
是的,這是可能的,也有提供這樣做的各種方法。如果它們都在同一個網絡上,則可以在它們之間建立TCP連接,都需要一個TCPlistener和一個TCP客戶端。
但是,我建議你看看的是WCF。使用WCF,你將能夠做到你所需要的(可能還有更多!),但是爲了熟悉WCF庫,它需要大量的閱讀。
對於事物的WCF方面,出格:
您可以通過查看以下啓動你的需要做的是:
A.在每個應用程序(在它們的構造函數中)中使用相同的URI作爲參考打開一個ServiceHost
。這將打開一個NetNamedPipeBinding
,您可以在這兩個應用程序之間進行通信。
實施例:
public static ServiceHost OpenServiceHost<T, U>(T instance, string address)
{
ServiceHost host = new ServiceHost(instance, new Uri[] { new Uri(address) });
ServiceBehaviorAttribute behaviour = host.Description.Behaviors.Find<ServiceBehaviorAttribute>();
behaviour.InstanceContextMode = InstanceContextMode.Single;
host.AddServiceEndpoint(typeof(U), new NetNamedPipeBinding(), serviceEnd);
host.Open();
return host;
}
B.創建在相關信道的監聽器。這可以在這兩個應用程序中完成,以允許雙向通信。
實施例:
/// <summary>
/// Method to create a listner on the subscribed channel.
/// </summary>
/// <typeparam name="T">The type of data to be passed.</typeparam>
/// <param name="address">The base address to use for the WCF connection.
/// An example being 'net.pipe://localhost' which will be appended by a service
/// end keyword 'net.pipe://localhost/ServiceEnd'.</param>
public static T AddListnerToServiceHost<T>(string address)
{
ChannelFactory<T> pipeFactory =
new ChannelFactory<T>(new NetNamedPipeBinding(),
new EndpointAddress(String.Format("{0}/{1}",
address,
serviceEnd)));
T pipeProxy = pipeFactory.CreateChannel();
return pipeProxy;
}
C.創建和在這兩個應用程序使用,並且在適當的類繼承的接口。一些IMyInterface
。
您可以設置一個可以在兩個應用程序中使用的庫,以允許使用一致的代碼庫。此類文庫將包含這兩種方法上述[多]和將在這兩個應用中使用,如:
// Setup the WCF pipeline.
public static IMyInterface pipeProxy { get; protected set;}
ServiceHost host = UserCostServiceLibrary.Wcf
.OpenServiceHost<UserCostTsqlPipe, IMyInterface>(
myClassInheritingFromIMyInterface, "net.pipe://localhost/YourAppName");
pipeProxy = UserCostServiceLibrary.Wcf.AddListnerToServiceHost<IMyInterface>("net.pipe://localhost/YourOtherAppName");
pipeProxy
哪裏是一些類從IMyInterface
繼承。這允許這兩個應用程序知道正在傳遞什麼(如果有的話 - 在你的情況下它將是一個無效的,只是一個'提示'讓應用程序知道通過接口預先指定的東西)。請注意,我有而不是顯示如何調用每個應用程序,你可以自己解決這個問題...
在上面有一些空白,你將不得不填寫,但使用我提供的一切應該可以幫助你做你需要的東西。
我希望這會有所幫助。
- 1. 從另一個java應用程序控制java應用程序
- 2. 從另一個應用程序控制應用程序
- 3. 如何從另一個程序控制MFC應用程序?
- 4. 一個Android應用程序來控制另一個應用程序
- 5. 從另一個程序集運行WPF應用程序
- 6. 啓動過程(從另一個控制檯應用程序)
- 7. C#應用程序在控制檯中使用另一個應用程序
- 8. 用於控制另一個應用程序的C#應用程序
- 9. 從我的應用程序調用另一個應用程序
- 10. 從另一個應用程序調用應用程序
- 11. 使用iTunes應用程序,從另一個應用程序
- 12. 從另一個應用程序調用應用程序
- 13. 從另一個控制檯應用程序啓動WPF應用程序中的操作
- 14. 如何從C#控制檯應用程序調用另一個.cs程序?
- 15. Nativescript - 從Nativescript應用程序啓動另一個應用程序
- 16. 從另一個Java應用程序啓動Java應用程序
- 17. 從另一個應用程序的電話欄應用程序
- 18. 從另一個應用程序啓動Java應用程序
- 19. 從另一個應用程序管理iPhone應用程序
- 20. 從另一個rcp應用程序啓動rcp應用程序
- 21. 從我的應用程序打開另一個應用程序?
- 22. 從另一個應用程序啓動應用程序
- 23. 從Web應用程序(ASP.Net)遠程控制Android應用程序
- 24. 從控制檯應用程序輸入到另一個C#控制檯應用程序?
- 25. C# - 從控制檯應用程序發送數據到另一個控制檯應用程序
- 26. 如何從「轉到」另一個控制檯應用程序中編寫的控制檯應用程序轉移?
- 27. WPF應用程序的VNC控制
- 28. WPF /控制檯混合應用程序
- 29. 從Vista中的另一個應用程序控制服務
- 30. 從另一個應用程序控制iPod?
_是否有可能?_你有沒有嘗試過任何東西? – 2013-04-09 10:47:54
是的,這是可能的。 – 2013-04-09 10:48:53
請自己嘗試一下,然後在SO中提問。 – Luv 2013-04-09 11:04:13