我有一個系統服務運行在我的Windows機器上,可以模擬當前登錄的用戶並以他們的名義啓動應用程序(包括UI應用程序)。如何在Windows登錄完成後運行某些操作?
當用戶已經登錄到他們的交互式會話,他們的桌面被創建等等時,它工作正常。
該服務的啓動是自動的,所以每次重新啓動後都會自動啓動。如果在服務啓動後立即嘗試運行某個程序(需要UI訪問),那麼該程序可能會失敗 - 可能是因爲自動登錄進程仍在進行中,桌面尚未創建,等等。
問題是:如果服務開始「提前」,它如何等待交互式會話被完全初始化(除了等待一些任意時間,這不是最優的)?
或者,服務能否「遲到」啓動?是否有註冊表項或文件夾或其他內容可用於將服務啓動延遲至Shell準備就緒並且可以安全啓動UI應用程序?
謝謝。我發現解決方案2工作得很好(我打電話給schtasks.exe以編程方式創建/刪除ONLOGON任務),這個ping技巧很簡潔(另一種選擇是使用timeout/t)。 – Netspirit 2012-04-03 08:02:32