通过按下 WPF 按钮在服务器上运行文件



某些使用Process.Start()PsExec.exe在服务器 PC 上启动视频的应用程序代码在从控制台应用程序运行时运行正常,但在 WPF 应用程序中通过按钮按压运行时则运行不正常。这让我今天发疯了。

所以:

我在PC上运行一个小型WPF应用程序,一旦按下按钮,它将向服务器PC发送命令以运行视频文件。我正在使用 PsExec.exe 以交互方式在服务器上运行进程(未使用 WMI 进行管理) 这是我正在使用的代码:


Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.FileName = @"C:WindowsSystem32PsExec.exe";
p.StartInfo.Arguments = @"\192.168.1.3 -u Administrator -p hagarmikejessav -i cmd.exe /c START E:MediaFerroniConcettaAappVideosPhotoslideshow.mp4";
p.StartInfo.CreateNoWindow = true;
p.Start();

不,当从普通控制台应用程序运行时,此完全相同的代码可以在服务器PC(192.168.1.3)上打开视频文件Photoslideshow.mp4。但是,当我在 WPF 应用程序中按下按钮后尝试运行它时,p.Start()给了我一个"系统找不到指定的文件"错误。下面是 WPF 代码片段(与上面相同):

private void Video1_btn_Click(object sender, RoutedEventArgs e)
{
try
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.FileName = @"C:WindowsSystem32PsExec.exe";
p.StartInfo.Arguments = @"\192.168.1.3 -u Administrator -p hagarmikejessav -i cmd.exe /c START E:MediaFerroniConcettaAappVideosPhotoslideshow.mp4  //fullscreen";
p.StartInfo.CreateNoWindow = true;
p.Start();
}
}

当我尝试在我的 PC 本地文件上使用 p.Start 时,该文件按预期打开。只是服务器没有"看到"文件名。正如我最初所说,相同的代码仅在单击按钮后访问 p.Start 时失败。

我做错了什么?请有人告诉我,这是在PC前数小时的结果,这只是一个愚蠢的错误,我看不到!

编辑:

经过多次尝试,我意识到错误"系统找不到指定的文件"与此行有关: p.StartInfo.文件名 = @"C:\Windows\System32\PsExec.exe";

在此处输入图像描述

将此行更改为:

p.StartInfo.文件名 =@"C:\Windows\System32\Notepad.exe";

并删除下一行,记事本在我的本地PC上打开。但是,当我将 2 行改回类似这样时:

p.StartInfo.文件名 = @"Notepad.exe"; p.StartInfo.Arguments = @"\192.168.1.3 -u Administrator -p pass-i cmd.exe/c START C:\realtek.txt";...

记事本在我的本地PC上打开,但出现错误"找不到网络路径"。(这与我运行"非按钮代码"时的错误类似。

因此,我知道问题与WPF/按钮应用程序有关。但我不知道问题出在哪里!

多谢 马里奥

我设法弄清楚了。

由于某种原因,系统未从此路径找到 PSExec(即使它存在于该文件夹中)。 p.StartInfo.文件名 = @"C:\Windows\System32\PsExec.exe";

将文件复制到另一个目录并使用完整路径后,它终于起作用了。

相关内容

  • 没有找到相关文章

最新更新