目前我正在檢查它以下列方式:如何確定是否在Windows服務中啓動?
if (Environment.UserInteractive)
Application.Run(new ServiceControllerForm(service));
else
ServiceBase.Run(windowsService);
它有助於調試一點,服務也可以使用可執行文件運行。但現在假設該服務需要與用戶桌面進行交互,以便我必須在屬性中啓用「允許服務與桌面交互」。這當然打破了這種檢查方式。有另一種方法嗎?
與桌面功能的交互更可靠地工作已經從Vista和Win7中刪除。這基本上解決了你的問題,如果不是現在,那麼很快。 – 2010-03-07 18:04:42
可能的dup:http:// stackoverflow。com/questions/421516/how-to-write-c-service-that-i-can-run-as-a-winforms-program – 2010-03-07 18:14:35
@nobugz該服務應該監視一些用戶GUI程序並保持它們運行,即使他們關閉/崩潰(一個售貨亭/終端)。看來這是真的不是一個好方法... – mikoro 2010-03-07 19:25:16