【问题标题】:Visual Basic Running external .exe issueVisual Basic 运行外部 .exe 问题
【发布时间】:2014-07-02 10:15:35
【问题描述】:

我目前正在处理一个项目,发现使用 Process.Start 和 shell 命令运行其他现有程序存在问题。发生的情况是,当我单击程序中的按钮以启动另一个 exe 文件时,它会加载程序但不正确,iv 在我的两个外部程序中看到了这种行为,其中一个在通过我的程序运行时无法更新,但它自己的作品很好,另一个无法正确加载界面并给我一个错误。

错误告诉我它找不到它所依赖的资源来运行所以任何人都可以告诉我为什么这样做以及一个可能的解决方案,因为 iv 尝试了我知道的所有启动代码:Start、Process.Start 和 shell?

编辑 我还发现,如果我将我的 exe 放在与我要运行的程序相同的文件夹中,它可以正常工作,但这不适合我的项目,所以有什么解决方法吗?

解决方案: 感谢您为我设置工作目录所需的所有帮助,初学者错误:)

Dim filePath As String = "C:\Program Files\Example\Example.exe"  
Dim psi As New ProcessStartInfo(filePath)    

psi.WorkingDirectory = IO.Path.GetDirectoryName(filePath)  Process.Start(psi)

【问题讨论】:

  • 这个太笼统了,报什么错,是个什么流程?仅仅一个通用的 .exe 信息不足以理解这一点。
  • 对不起,我不确定它是什么类型的 .exe,除了它是一个独立的 Windows 窗体应用程序,我尝试的另一个程序是控制台应用程序。我在其中一个程序上遇到的错误是程序本身的一部分,错误表示程序缺少一个 exe 文件以使其正常运行。
  • 鉴于信息,仍然不容易回答这个问题。您可以尝试单独运行 .exe 并先查看它是否有效。
  • 如果我自己运行程序,它可以正常运行,但只要我在程序中使用 Process.Start 从与我的可执行文件不同的目录启动 exe,其他程序就无法正常运行。我认为这与程序以某种方式从其资源中移开有关,因为如果我将程序从其他必要文件移到桌面上,它会显示相同的行为。
  • 你能给我们一个应该启动你的 .exe 的代码示例吗?

标签: vb.net visual-studio


【解决方案1】:

你必须定义一个工作目录

var proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = "The Location of the process";
proc.Start("the process");

【讨论】:

  • 不仅是工作目录,还有文件名。 Dim Proc As New Process() Proc.StartInfo.WorkingDirectory = LocalDir Proc.StartInfo.FileName = varFileName Proc.Start()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多