![](/img/trans.png)
[英]Can you call an external application from a Windows 10 Universal application? c#
[英]How to call an external windows application with UI by a c# application?
我們有一個帶有 GUI 的程序 ( A.exe ) 和一個工具欄,它用一些文本來做 NLP 的東西。 在該工具欄中,我們有function A ,它通過添加一些 xml 標簽來轉換文本。 這里有人(老板)希望我創建一個 Web 服務調用function A 。 它告訴我動態數據交換(他幾年前用過),我看到了類似SendMessage的東西。
Web 服務將被某些人通過 Inte.net 使用:發送文本並獲得xml的結果。 GUI程序在有人調用WS時無法啟動,因為太慢了,所以有人建議一次性啟動這個A.exe ,WS會通過DDE調用來詢問這個A.exe 。 我不知道A.exe在並發調用的情況下會如何反應。
Web 服務將:
我想指出:
謝謝你。
PS:用UI調用服務端程序構建WS是邪教吧?
這個問題的答案實際上取決於您要完成的任務。 您的 function 是否更改來自外部數據源(例如數據庫)的數據,或者您是否在應用程序中調用 function?
我將從以下問題開始。
1)按鈕的function有什么作用? 能否將其功能轉移到服務中並在多個應用程序之間共享?
2)你能把功能放在 DLL 中並在兩個應用程序之間共享嗎?
3) 這兩個應用程序真的需要相互通信嗎?
如果這兩個進程必須相互通信,而您只希望應用程序 A 響應來自應用程序 B 的消息,請考慮使用命名管道進行 TCP/IP 通信。 這在 .NET 中足夠簡單,並提供進程之間的快速通信。
更新:這是一個鏈接,其中包含有關使用命名管道的信息: http://msdn.microsoft.com/en-us/library/bb546085.aspx 。
更新 2:這是您更新問題后的更新。 您有權訪問 A.exe 的源代碼嗎? 如果這樣做,您有兩個選擇:1) 將該邏輯移到您的服務中或 2) 修改 A.exe 以接受命令行參數,以便您的服務可以調用該流程並取回結果。 如果您沒有源代碼並且無法從命令行調用 A.exe,那么除了以 web 服務可以調用的形式自己編寫流程之外,您無能為力。
PS 你不必擔心並發調用,因為每個服務器請求都會執行一個單獨的進程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.