我想創建一個服務,並執行以下操作:如何在啓動應用程序未記錄從服務用戶的桌面上,在Windows
- 登錄在與指定的用戶名的用戶/密碼
- 運行在步驟1的登錄用戶的桌面上的應用程序
注意:在步驟1之前,用戶未登錄。 (像合適的機器重新啓動後)
預期的結果是,用戶應該能夠看到在步驟2中推出應用程序的UI,如果用戶登錄到與用戶帳戶桌面步驟
登錄我發現了這篇文章,但是這個代碼會在當前桌面上啓動應用程序(比方說,當前以userA身份登錄)。使用userB的用戶名/密碼,該應用程序仍然會在userA桌面上啓動,但使用userB的帳戶)。
https://support.microsoft.com/en-ca/help/165194/createprocessasuser-windowstations-and-desktops
請讓我知道什麼是實現我的目標的正確方法。
IDE:Windows上的Visual Studio 2015 C++。
如果你知道用戶名/密碼有什麼問題?調用'LogonUser'然後'CreateProcessAsUser' – RbMm
沒有辦法在尚不存在的桌面上運行應用程序。您的服務必須等待用戶登錄,然後啓動該應用程序。請注意,服務無需知道用戶的密碼。此外,在大多數情況下,服務不是最好的方式來做到這一點。 –
這假設(錯誤地)爲用戶準確地存在一個桌面。問題在於,當用戶登錄時,會創建一個新的桌面,這將成爲第二臺桌面。它不會有預期的窗口。 – MSalters