C# 进程,无法运行创建图像并将其读回的 exe

发布于 2024-12-06 04:24:56 字数 882 浏览 1 评论 0原文

我正在尝试从 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 的建议添加清单后,我正在检查安全设置。我显示的突出显示的框是否需要像其他几个一样被选中为绿色? 在此处输入图像描述

I am trying to run an exe from C#

 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");

When I run the exe from command line prompt, it works fine as expected and the JPEG is created. But when I try the C# program, after allowing the program run once through UAC, I see the command line prompt open and display the status. But the output image is not produced.

Is there something that I miss?

Update

After adding the Manifest as suggested by Moxplod, I was going through the security settings. Does the highlighted box I have shown need to be checked green like the other few?
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷清清 2024-12-13 04:24:56

程序是否在当前目录中生成输出图像?因为您正在检查包含可执行文件的目录中的图像,该可执行文件可能与当前目录不同。

Does program produce output image in the current directory? Because you are checking for image in the directory that contains executable which may be different from current directory.

小情绪 2024-12-13 04:24:56

您可以添加清单条目,这样就不会出现权限错误。如果这就是你想要的。

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

You can add a manifest entry so you dont get permission errors. If this is what you want.

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文