我有以下代码来运行AutoCAD软件:
string path = @"C:\Program Files\Autodesk\AutoCAD 2012 - English\acad.exe";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = path;
p.Start();
但是使用这段代码我需要acad.exe的确切文件路径
我希望能够做的是点击按钮,让我的代码找到AutoCAD并运行。 但如果找不到,请显示一条消息。
答案 0 :(得分:1)
AutoCAD.Application类已注册并已本地化为路径。如果您愿意,可以从注册表中获取路径并将其用于进程启动。另外,您可以使用激活器从ProgId创建一个激活器,如果您打算与AutoCAD进行交互,这将更有意义。
Activator.CreateInstance(Type.GetTypeFromProgID("AutoCAD.Application"));
查看AutoCAD互操作库,了解如何使用它。
答案 1 :(得分:0)
我想你需要下面的东西;
using System;
using System.IO;
namespace FileLocator
{
class Program
{
static void Main(string[] args)
{
string filename = "wmplayer.exe";// Only for example.Change to your exe's name.
string searchFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86).Replace("Common Files", "");// ProgramFiles (x86) folder
foreach (string directory in Directory.GetDirectories(searchFolder))// Iterate through each folder in PFx86.
{
foreach (string directoryfilename in Directory.GetFiles(directory, "*.exe"))// Get all files with .exe extension.
{
if (Path.GetFileName(directoryfilename) == filename)//If Current filename==wmplayer.exe
{
Console.WriteLine("Found {0} in {1}", filename, directory);
Console.WriteLine("Complete Path => {0}", directoryfilename);
Console.ReadLine();
}
}
}
}
}
}
这个方法循环遍历目标中的每个文件夹,现在它的PFx86找出我们需要的东西。警告说这种技术可以抛出大量的安全异常。