use*_*870 2 .net c# vb.net windows process
有什么方法可以找到在 C# 或 VB.Net 中检索 Excel 可执行文件的路径的方法吗?我知道下面这两个选项,但不幸的是它们不合适。如果您有替代方案,请提出建议。
Process.Start("Excel")Excel 进程并获取路径无法使用注册表选项,因为没有足够权限的人可能正在使用我的应用程序,因此我们想远离。如果这种假设是错误的,并且注册表对于任何级别的用户访问权限都是可靠的,请告诉我。
使用第二个选项,我看到 Excel 进程正在打开,如果有一种方法可以启动,但根本不让 Excel 进程向用户显示,这可能会起作用。
我最终得出了这个逻辑,它达到了我的目的。如果 Excel 是一个正在运行的进程,那么我将从那里获取路径,如果不是,我将通过创建一个实例来获取路径,该实例实际上并不显示 Excel UI,而是在后台运行。
string path = string.Empty;
Process[] processlist = Process.GetProcesses();
foreach (Process theprocess in processlist)
{
if (theprocess.ProcessName == "EXCEL")
{
path = theprocess.MainModule.FileName;
break;
}
}
if (path == string.Empty)
{
Type officeType = Type.GetTypeFromProgID("Excel.Application");
dynamic xlApp = Activator.CreateInstance(officeType);
xlApp.Visible = false;
path = xlApp.Path + @"\Excel.exe";
xlApp.Quit();
}
Run Code Online (Sandbox Code Playgroud)