我正在尝试从C#运行一个exe
ProcessStartInfo si = new ProcessStartInfo
(
ExePath, InputImageFilePath +" "+
numericUpDownResize.Value +" "+
numericUpDownPad.Value+" "+
numericUpDownWindow.Value
);
si.UseShellExecute = true;
si.CreateNoWindow = true;
si.WindowStyle = ProcessWindowStyle.Normal;
si.Verb = "runas";
Process process = Process.Start(si);
process.WaitForExit();
int indexOfLastSlash = ExePath.LastIndexOf(@"\");
string outputFilePath = ExePath.Substring(0, indexOfLastSlash);
OutputImage = new Bitmap(outputFilePath + @"\output.jpg");
当我从命令行提示符运行exe时,它可以正常工作并创建JPEG。但是当我尝试c#程序时,允许程序通过UAC运行一次后,我看到命令行提示打开并显示状态。但是没有产生输出图像。
有什么我想念的吗?
按照Moxplod的建议添加Manifest后,我正在进行安全设置。我显示的突出显示的框是否需要像其他几个一样进行绿色检查?
答案 0 :(得分:1)
您可以添加清单条目,这样就不会出现权限错误。如果这是你想要的。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
答案 1 :(得分:1)
程序是否在当前目录中生成输出图像?因为您正在检查包含可执行文件的目录中的映像,该目录可能与当前目录不同。