创建交互式登录会话窗口7

时间:2013-12-17 15:08:40

标签: c# windows winapi

我需要为用户创建交互式登录会话,并在此会话中为此用户帐户启动应用程序。 我不需要它在任何时候成为活跃的会话。我只需要在后台运行额外的会话,其中包含一个应用程序。

不幸的是LogonUser对我来说不是一个解决方案,因为它不会创建自己的会话。

有没有办法在C#/ PInvoke或者powershell中做到这一点?

修改

有关我要实现的目标的更多细节: 我知道这不是优雅的解决方案,但如果我可以自动化这将是一个“解决方案”。

我有第三方应用程序,我想在一个桌面上多次运行。我试过右键单击“以用户身份运行”,但我收到错误无法访问“C:\ Users \ Default \ AppData”。 PInvoke Logonuser因访问被拒绝异常而失败。 如果我切换到另一个用户而不是多个实例运行没有任何问题。

与XP解决方案类似: Create an interactive logon session

2 个答案:

答案 0 :(得分:1)

  

我需要为用户创建交互式登录会话,并在此会话中为此用户帐户启动应用程序。

据我了解,您无法以编程方式创建新会话。您有权创建新桌面,但不能创建新会话。

答案 1 :(得分:0)

我也有类似的问题,我编写了一个应用程序,它使用TestStack.White控制第三个WPF应用程序,该应用程序使用UI自动化。当我RPD进入远程机器并观看应用程序时它运行完美但是一旦我断开连接甚至最小化RPD窗口我的应用程序冻结。我甚至尝试过像AlwaysUp和Service +这样的软件,声称能够做到这一点,他们甚至可以将应用程序启动到特定的会话中。一旦它,你看到这个弹出窗口,说应用程序想要给你发送一条消息,除非你查看该消息,该应用程序不会运行。我确实找到了使用TightVNC的糟糕工作。我在远程计算机上安装了服务器,在我的计算机上连接了查看器,然后启动了应用程序,即使断开查看器,它仍然保持运行状态。 TightVNC刚刚创建了一个C#api,我正在等待他们发​​送,我真的希望我可以实际连接一个查看器会话并启动/重启应用程序。我知道这与你想要做的有点不同,这是一个旧帖子,但我想我会分享。