2013-12-17 25 views
0

我需要爲用戶創建交互式登錄會話並在此會話中爲此用戶帳戶啓動應用程序。 我不需要它在任何時候變成活動會話。我需要的只是在後臺運行其他會話,並在其中添加應用程序。創建交互式登錄會話windows 7

不幸的是LogonUser對我來說不是一個解決方案,因爲它不會創建自己的會話。

有沒有辦法在C#/ PInvoke或PowerShell中做到這一點?

編輯:什麼我想實現

更多細節: 我知道這是不是完美的解決方案,但如果我可以自動化這一點,將是「解決方案」。

我有第三方應用程序,我想在單個桌面上運行多次。我試過右鍵點擊「以用戶身份運行」,但我得到的錯誤無法訪問「C:\ Users \ Default \ AppData」。 PInvoke Logonuser因訪問被拒絕異常而失敗。 如果我切換到另一個用戶而不是多個實例運行沒有任何問題。

到XP的解決方案類似: Create an interactive logon session

+0

這聽起來像它可能是一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),你在做什麼,創建一個新的交互式登錄會議是解決方案嗎? –

+0

我有第三方應用程序,我想在單個桌面上多次運行。我試過右鍵點擊「以用戶身份運行」,但我得到的錯誤無法訪問「C:\ Users \ Default \ AppData」。 PInvoke Logonuser因訪問被拒絕異常而失敗。 如果我切換到另一個用戶而不是多個實例運行沒有任何問題。 – Marek

+0

我建議查找使用[應用程序兼容性工具包](http://technet.microsoft.com/en-us/library/cc722055%28v=ws.10%29.aspx),可能會有[shim ](http://technet.microsoft.com/en-us/library/dd837644%28v=ws.10%29.aspx),您可以使用它將調用重定向到AppData到不同的位置。 –

回答

1

我需要爲用戶創建交互式登錄會話,並在本次會議此用戶帳戶啓動的應用程序。

據我所知,你不能以編程方式創建一個新的會話。您有權創建新的桌面,但不能創建新的會話。

+0

新桌面和新會話有什麼區別。我可以使用新桌面以用戶身份運行應用程序嗎? – Marek

+0

有會話,窗口站和桌面。它可能有點令人迷惑。你可以做的是創建一個新的桌面,而不是激活它。我不知道這是否能解決您的實際問題。我剛剛試着回答你問的問題。 –

+0

問題回來困擾着我。你確定這是不可能的嗎? logmein和其他應用程序如何將您登錄到遠程計算機? – Marek

0

我也有類似的問題,我寫了一個應用程序,它使用TestStack.White來控制第三個WPF應用程序,它使用UI自動化。當我將RPD放入遠程機器並觀看應用程序時,它運行良好,但一旦斷開連接或甚至將RPD窗口最小化,我的應用程序就會凍結。我甚至嘗試過像AlwaysUp和Service +這樣的軟件,它們聲稱可以做到這一點,甚至可以將應用程序啓動到特定的會話中。一旦你看到這個彈出窗口說應用程序想給你發送一條消息,除非你查看該消息的應用程序不會運行。我確實發現了一個使用TightVNC的糟糕工作。我在遠程機器上安裝了服務器,連接了我的機器上的查看器,然後啓動應用程序,即使斷開查看器,它仍保持運行。 TightVNC剛剛創建了一個C#api,我等待他們發​​送,我真的希望我可以實際連接一個查看器會話並啓動/重新啓動應用程序。我知道這與你想要做的有點不同,這是一箇舊帖子,但我想我會分享。