2011-02-02 59 views
0

我需要創建一個Windows服務,當啓動時打開一個特定的URL。 我所做的是通過添加以下行來覆蓋在onStart()方法:如何從Windows服務啓動瀏覽器

保護覆蓋無效的OnStart(字串[] args)

{ 
     eventLog1.WriteEntry("Browser must start " + DateTime.Now); 
     string targetURL = "http://www.mysite.com"; 
     System.Diagnostics.Process.Start(targetURL); 
    } 

但是這件事不`噸的工作。 :(( 事情是,它確實寫入日誌。意思是onStart任何人都有任何想法????

回答

2

的服務通常啓動(當它是在自動啓動模式下)當沒有用戶登錄時。

一般來說,服務不會與用戶桌面交互並在單獨的會話中工作。如果您需要爲每個或部分登錄用戶執行某些操作,則需要編寫一個單獨的代理應用程序,該應用程序將在用戶登錄時自動啓動,並與您的服務進行通信。然後代理可以啓動瀏覽器或做任何你需要的東西。

2

簡單的答案是,如果你使用Vista或更高版本,你不能。這是由於session 0 isolation。要在該網頁鏈接的文檔引用:

對於更復雜的相互作用, 開發者應該將他們的UI代碼 成在用戶的 會話中運行並處理所有UI 要求代理。該代理通過RPC或命名爲 管道將 與服務進行通信。

相關問題