C#Outlook VSTO由于权限无法启动进程

时间:2017-05-12 21:48:12

标签: c# .net outlook vsto

我使用C#创建了一个VSTO,我想从Program Files(x86)文件夹中调用一个简单的EXE文件。 VSTO代码非常简单,它只是尝试使用System.Diagnostics中的Process.Start调用EXE文件。在具有管理员用户的计算机上,代码工作正常。但是,当我在具有非管理员用户的计算机上进行尝试时,VSTO显然没有启动EXE的权限。没有错误,但它根本没有做任何事情。

有人如何解决此权限问题?提前谢谢!

代码:

public void setName(String name) {
}

2 个答案:

答案 0 :(得分:0)

请勿将工作目录设置为Program files (x86)目录。

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{
     ProcessStartInfo info = new ProcessStartInfo(@"C:\Program Files (x86)\My Program\here.exe");
     //info.WorkingDirectory = "C:\\Program Files (x86)\\My Program\\";
     info.WorkingDirectory = SpecialFolder.ApplicationData
     info.UseShellExecute = true;
     Process.Start(info);
}

答案 1 :(得分:0)

请记住,Program Files文件夹需要管理员权限。如果您(用户)没有足够的权限,则无法修改任何内容。如果目标.exe文件尝试创建或写入某些内容,则无法运行。

如果在基于x86的OS系统中运行代码,则路径将不同。此类操作系统上没有Program Files (x86)个文件夹。

如果指定可执行文件的完整路径,则无需设置WorkingDirectory属性。