c# - (如何)使用 Windows 文件资源管理器查找应用程序?

标签 c# winforms

我想以编程方式打开一个应用程序。

首先我使用 System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Program1.exe") 工作正常,但应用程序始终需要在相同的路径(不总是正确的,因为不同的计算机)

找到它的一种简单方法(使用鼠标并单击,虽然不是编程方式)是使用 Windows 文件资源管理器,我输入我的应用程序的标题,我立即找到它。

我想编写代码。

我以为我可以使用键盘快捷键“Home + F”并用 SendKeys.Send("blabla") 模拟这个词,但是 c# 中似乎不存在“Home 键” (至少这里没有https://msdn.microsoft.com/fr-fr/library/ms127847(v=vs.110).aspx)

这是一个为 children 准备的小程序,我不能指望他们手动找到路径(所以忘记 OpenFileDialog..)

也许这是一个非常糟糕的主意,还有另一种解决方案可以在不知道他的路径的情况下找到一个程序,我不知道你有更好的主意吗?!

最佳答案

您试图以错误的方式解决问题。当程序使用资源管理器运行时,您要“编程”的是工作目录 的设置。 正确的方法是使用 Process.Start 传递所有必要的信息来启动进程:

var startInfo = new ProcessStartInfo("Program1.exe");
startInfo.WorkingDirectory = @"C:\Program Files (x86)\";

Process proc = Process.Start(startInfo);

关于c# - (如何)使用 Windows 文件资源管理器查找应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547273/

相关文章:

c# - 在 C# 中打印 (wpf)

c# - 无法从 ASP.NET MVC 中的操作返回图像流

c# - 在 C#/.NET 中获取 url 的域名

c# - 关闭程序后保留剪贴板信息

c# - 通过 WebClient/FTP 下载大文件时出现问题

c# - 这是唯一指向无法访问标签的可访问 goto 的情况吗?

c# - 转换为 12 小时格式不起作用

c# - 如何在另一个窗体窗体中显示图形

c# - 如何在winform上绘制丰富格式的字符串?

c# - 禁止在 TextBox 中选择文本