我一直在互联网上搜索有关此问题的某种教程,但我没有找到一个非常明确的说明。 我在Visual Studio中创建了一个具有两个按钮的WPF窗口 按钮One用于启动PDF文件。 按钮二将用于启动.exe应用程序,然后关闭WPF窗口 现在,我发现如果我使用:
System.Diagnostics.Process.Start("C:/Users/mdkgr/Desktop/FolderName/app.exe")
然后它起作用了,但是自然地,当我发布该项目并且人们要在他们的计算机上使用它时,此方法将不起作用,因为毫无疑问,其安装的每台计算机的地址都会不同。 我的问题很简单: 我如何做到这一点,以便它将在安装的任何计算机上启动PDF文件或application.exe? 我见过的Visual Studio教程都没有一个很清楚。
编辑:
我尝试了@bwing的想法,但遇到错误,因此不确定是否正确使用了它?这是我在公共场所中的代码:
`public static void LaunchKOS()
{
var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
// Launch Voice Server
//Process.Start("C:/Users/mdkgr/Desktop/Knight O S Beta01_Data/voice-recognition-server-pc/VoiceServer/bin/Release/KittVoiceServer");
var combinedPath = Path.Combine(desktopPath, "Knight O S Beta01_Data/voice-recognition-server-pc/VoiceServer/bin/Release/KittVoiceServer");
Process.Start(combinedPath);
// Launch Knight O.S. Unity Settings Window
Process.Start("C:/Users/mdkgr/Desktop/Knight O S Beta01");
// Close This Window
Environment.Exit(0);
}
public static void LaunchPDF()
{
Process.Start("C:/Users/mdkgr/Desktop/Knight O S Beta01_Data/Knight O.S. Features.pdf");
}`
编辑:
此方法在我的一台计算机上运行良好,但是一旦在HP笔记本电脑上尝试该方法,它只想打开Unity3d应用程序。但是在两台计算机上,文件夹目录完全相同,我可以毫无问题地手动打开每个.exe文件,但是启动器应用程序只想在HP笔记本电脑上打开一个.exe文件。有谁知道为什么会这样?
public static void LaunchKOS()
{
var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var desktopPathkos = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
// Launch Voice Server
var combinedPath = Path.Combine(desktopPath, "Knight O S Beta01_Data/voice-recognition-server-pc/VoiceServer/bin/Release/KittVoiceServer");
Process.Start(combinedPath);
// Launch Knight O.S. Unity Settings Window
var combinedPathkos = Path.Combine(desktopPathkos, "Knight O S Beta01");
Process.Start(combinedPathkos);
// Close This Window
Environment.Exit(0);
}
答案 0 :(得分:0)
如果文件在桌面上,则可以使用以下方式获取到桌面的路径
var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
如果文件与WPF Window应用程序位于同一文件夹中,则可以使用它来获取该文件夹
var exePath = AppDomain.CurrentDomain.BaseDirectory;
然后,您只需附加文件名并像以前一样拨打电话
var combinedPath = Path.Combine(desktopPath, "app.exe");
Process.Start(combinedPath