gpt4 book ai didi

c# - Process.Start 是否存储远程执行文件的本地副本?

转载 作者:可可西里 更新时间:2023-11-01 14:24:01 25 4
gpt4 key购买 nike

我需要直接从远程计算机执行程序,因为他们的程序有网络许可系统..
您在服务器上安装并注册一次,所有客户端都可以通过打开可执行文件通过网络共享访问它。我写了一个小应用程序,应该可以轻松访问网络共享并打开程序。

到目前为止没有问题。我能够像这样执行该程序,它会打开。是的

// 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# 中隐藏凭据更容易。仅应在必要时授予对网络共享的访问权限。只有当有人想使用该程序时才需要这样做。

最佳答案

不,它没有。虽然它确实将文件加载到内存中,但这对于您启动的每个程序都是一样的。

您可以使用一个简单的控制台应用程序自己尝试:

static void Main(string[] args)
{
Console.WriteLine(typeof(Program).Assembly.Location);
Console.ReadKey();
}

这会在此处打印 \\someserver\temp\ConsoleApplication8.exe

您提到的程序可以对计算机名称进行一些检查,例如检查它是否被复制。我建议检查 Process Monitor查看它是否创建/读取包含“上次使用的计算机名称”或类似内容的文件。我只是自己尝试使用控制台应用程序,但没有指向正在复制的文件。

关于c# - Process.Start 是否存储远程执行文件的本地副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28169809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com