我需要在機器啓動時執行我的應用程序而無需用戶交互。我需要在所有的Windows XP,Windows Vista,Windows Server 2003,Windows 7和Windows Server 2008操作系統上運行。
對於這一點,我按照這些步驟,如何在Windows服務器操作系統中獲得「活動會話ID」?
- 獲取使用WTSGetActiveConsoleSessionId
- 獲得作爲當前活動的會話中運行
- 獲取一個Winlogon進程的進程ID活動會話ID處理winlogon進程
- 使用獲取winlogon進程的訪問令牌的句柄OpenProcessToken
- 複製Winlogon進程DuplicateTokenEx
- 創建使用CreateProcessAsUser
- 在交互式窗口站和當前用戶的登錄會話的新進程,然後關閉所有句柄的訪問令牌。
它適用於所有工作站,並且服務器有一個活動的控制檯ID正在運行。這很明顯,因爲在第1步中,我捕獲了活動控制檯標識。在引入Windows Session 0 Isolation之前,我發現了其他一些在OS中啓動應用程序的方法。
現在我需要趕上WTSGetActiveConsoleSessionId是否返回一個有效的身份證件,如果不創建一個新的會話,並在它開始我的應用程序或趕上活動RDP會話的在其上運行我的應用程序或顯示在用戶屏幕上的記錄供用戶決定(這是理想的,因爲我的應用程序是一個捕獲屏幕的屏幕)。我相信他們應該成爲這樣做的一種方式,我需要你的幫助。
非常感謝!
我相信這個問題已經在這裏問:http://stackoverflow.com/questions/5896878/running-a-program-when-windows-boots-前登錄 – Jamey