更改可执行文件与代码的兼容性

问题描述 投票:0回答:2

我有一个文件MyUtilities.exe

我跑步时:Process.Start("MyUtilities.exe","SomeParameter");

如果该进程在没有管理员特权的情况下运行,则其退出代码为0(确定)。如果我以管理员身份运行该代码,则退出代码为1!

因为我没有创建MyUtilities.exe,所以无法修改它。

最后,我需要以管理员身份运行Process.Start("MyUtilities.exe","SomeParameter");],并使其返回退出代码=0。我设法做到这一点的方法是将其兼容性更改为:]]

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94b1J2Yy5wbmcifQ==” alt =“在此处输入图像描述”>

(右键单击文件->属性->兼容性->以管理员身份运行该程序)

现在更改之后,我可以以管理员身份运行Process.Start("MyUtilities.exe","SomeParameter");,并使其返回退出代码0。

[我的问题是

如何更改该文件的兼容性使用代码,这样我就不必告诉用户右键单击该文件然后更改设置。

我有一个MyUtilities.exe文件。当我运行时:Process.Start(“ MyUtilities.exe”,“ SomeParameter”);如果在没有管理员权限的情况下运行,则该进程的退出代码为0(确定)。如果我以...

c# process compatibility privileges
2个回答
7
投票

这看起来很简单。只需向注册表添加一个值。

键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers-或-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers


1
投票

如果调用过程以管理员权限执行,并且开始生成“ MyUtilites.exe”,它也将以管理员身份启动。只需转到项目的属性并查找以XML格式编写的清单文件即可。您将在该文件中看到“ asInvoker”,将其更改为“ requireAdministrator”。

© www.soinside.com 2019 - 2024. All rights reserved.