用shellexecute启动程序,可以指定特定在某个用户登录状态下显示窗口吗?

Henry.6 2013-11-15 06:35:01
在服务程序使用shellexecute启动特定程序是没问题了,可是在win2003下可以用同个用户名多次登录,这时有个问题,特定程序的是启动了,可是程序窗口不在当前登录的连接用户下显示,必须用任务管理器切换到另一个连接用户才可以看到程序窗口。
现在怎么解决在指定连接用户显示的程序窗口的问题?
...全文
276 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henry.6 2013-11-19
  • 打赏
  • 举报
回复
引用 3 楼 ysai 的回复:
一个用户连接到系统,就有一个windowstation 一个windowstation可能有多个桌面,不过一般情况下只有一个 >>在win2003下可以用同个用户名多次登录 这种情况你无法判断的,因为同时可能有多个用户远程连接上系统,只能先枚举windowstation再枚举desktop 如果是本机登录,好像可以用OpenInputDesktop 参考:http://msdn.microsoft.com/en-us/library/windows/desktop/ms687107(v=vs.85).aspx
具体代码怎么写?有例子吗?
ysai 2013-11-18
  • 打赏
  • 举报
回复
一个用户连接到系统,就有一个windowstation 一个windowstation可能有多个桌面,不过一般情况下只有一个 >>在win2003下可以用同个用户名多次登录 这种情况你无法判断的,因为同时可能有多个用户远程连接上系统,只能先枚举windowstation再枚举desktop 如果是本机登录,好像可以用OpenInputDesktop 参考:http://msdn.microsoft.com/en-us/library/windows/desktop/ms687107(v=vs.85).aspx
Henry.6 2013-11-18
  • 打赏
  • 举报
回复
引用 1 楼 ysai 的回复:
先建立线程,然后setthreaddesktop把线程切到指定桌面,然后线程里启动进程,就到指定桌面了
我怎么知道是哪个桌面?假设以一个已启动窗口程序(已做防重复启动)为标准。
ysai 2013-11-15
  • 打赏
  • 举报
回复
先建立线程,然后setthreaddesktop把线程切到指定桌面,然后线程里启动进程,就到指定桌面了

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧