我确信以前有人问过这个问题,但是我还没有find问题或答案。
我有一个自定义选项卡式应用程序,显示来自各个科学仪器在每个选项卡上的数据 我的用户想单击一个选项卡,当我的应用程序中单击一个选项卡时,我的应用程序将启动各种仪器控制器应用程序(或将其带到前台)。
我已经尝试了很多不同的方法,从编写自己的C#应用程序到执行Process.Start,编写远程机器上的第二个C#应用程序,并使用Sysinternals的psexec等启动合适的应用程序。我可以得到在远程计算机上成功启动进程,但无论用户提供的凭据是什么(不pipe用户是否以交互方式login),都会丢失GUI。我相信这是Windows中的一项安全增强function。
查看Win32_Process MSDN文档的Create()方法可以发现我怀疑的情况 – 出于安全原因,Win32_Process.Create方法不能用于远程启动交互式进程。
C ++ Linux交互另一个程序stdin / stdout
使用python创build交互式壁纸
如何从交互式会话中启动非交互式进程
无法find像igiZoom,igiPan或igiRotate交互式手势事件的VCL组件在Delphi XE7
如何在UNIX中将string转换为整数
看起来我可以做的最好的办法是远程访问任务计划程序,在一定的时间间隔后启动远程应用程序 。 我相信这会给我的应用程序带来可怕的用户体验(谁想要点击一个标签并等待30秒?),所以我正在避免这种做法。
编辑 psexec自己的文档承担了我的观点,这是不可能的。 -x标志表示“在Winlogon桌面上显示UI(仅限本地系统)”。 如果有可能的话,我相信Sysinternals会做到这一点。
如何将string推送到stdin? 在启动时通过stdin提供input,然后交互地读取stdininput
在监听命令的远程计算机上进行正常的交互式进程。 然后您可以发送命令来运行适当的过程。 你可以这样做:
将您的进程放入“开始”菜单(或注册表的HKLM / HKCU运行部分)中用户的“启动”组中。
只要用户登录,您的进程就会以交互方式运行。您可以创建一个托盘图标来指示它正在运行。
您的进程打开一个TCP端口来侦听命令。
另一台计算机上的控制进程向TCP端口发送命令。
你的进程运行指定的命令。 因为你的过程是交互式运行的,子进程也是交互式的。
TCP端口将是一个巨大的安全漏洞。 根据需要尽可能多或少地保护它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。