簡體   English   中英

從Windows服務啟動Windows窗體應用程序

[英]Start windows form application from Windows service

我已經創建了Windows服務,我想在其中啟動Windows窗體應用程序。 在該應用程序中,我將窗體邊框樣式設置為FixedToolWindow ,即使最小化它也不會顯示在任務欄中(我將ShowInTaskbar設置為false)。 所以我沒有得到如何啟動該應用程序的信息。 當我使用一個簡單的Windows窗體應用程序時,它將啟動並在TaskManager中顯示過程,但沒有顯示GUI。

我已經在OnStart()方法中編寫了以下代碼來做到這一點。 請提出更好的解決方案。 為何不顯示其他簡單應用程序UI?

p.StartInfo.FileName = @"Exe path";
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
p.StartInfo.CreateNoWindow = true;
p.Start();

其中p是System.Diagnostics.Process類的對象。

Windows服務不會與登錄用戶在同一會話中運行,這不是這樣做的方法。 您通常在后台運行長時間的服務,然后執行以下任一操作:

  1. 用戶手動啟動可以配置服務的應用,或者

  2. 擁有一個已經運行(托盤)的應用程序,該應用程序可能在用戶登錄時啟動,該服務可能會喚醒該信號。

對於第二種情況,您可以使用EventWaitHandle如果你只需要發送一個簡單的“喚醒”電話,或使用任何進程間通信選項,你想為更復雜的數據交換。 后者通常直接或通過WCF,Remoting或其他一些方便的技術基於套接字或命名管道。

暫無
暫無

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

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