【发布时间】:2015-03-26 00:40:34
【问题描述】:
我需要直接从远程计算机执行程序,因为他们的网络许可系统与程序一起使用..
您在服务器上安装和注册一次,所有客户端都通过它访问它通过打开可执行文件来共享网络。
我编写了一个小应用程序,应该可以轻松访问网络共享并打开程序。
到目前为止没有问题。我可以像这样执行程序,它会打开。耶
// Some cred and network stuff.
// ...
Process.Start("\\192.168.0.100\Share\MyProgram.exe");
但是程序弹出一条消息,该程序可能已被复制。就像是在本地执行的一样。
如果我通过资源管理器打开程序就不会出现此问题,只需以这种方式打开它 => \\192.168.0.100\Share\MyProgram.exe.
Process.Start() 是否存储在机器上本地远程打开的文件(临时)?如果是这样,有没有办法解决?
附加信息:
问:有些人可能会想,如果您可以在桌面上创建一个快捷方式,为什么还要为此费力?或者为什么不制作一个批处理文件?
答: IMO,在 C# 中隐藏凭据更容易。仅在必要时才应授予对网络共享的访问权限。只有当有人想使用该程序时才需要这样做。
【问题讨论】:
-
您可以尝试将 ShellExecute 设置为
true吗?真正的问题是“为什么应用程序认为它被复制了?”。您可能可以使用 ProcessMonitor 找到这一点。 -
我会在几分钟后尝试使用
ShellExecute = true。提前致谢。 -
ShellExecute 没有帮助
-
奇怪; ShellExecute 的行为应该与 Explorer 完全相同。
标签: c# windows remote-access network-shares