我有一个文件MyUtilities.exe
。
我跑步时:Process.Start("MyUtilities.exe","SomeParameter");
如果该进程在没有管理员特权的情况下运行,则其退出代码为0(确定)。如果我以管理员身份运行该代码,则退出代码为1!
因为我没有创建MyUtilities.exe
,所以无法修改它。
最后,我需要以管理员身份运行 << img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94b1J2Yy5wbmcifQ==” alt =“在此处输入图像描述”>Process.Start("MyUtilities.exe","SomeParameter");
],并使其返回退出代码=0。我设法做到这一点的方法是将其兼容性更改为:]]
(右键单击文件->属性->兼容性->以管理员身份运行该程序)
现在更改之后,我可以以管理员身份运行Process.Start("MyUtilities.exe","SomeParameter");
,并使其返回退出代码0。
[我的问题是
如何更改该文件的兼容性使用代码,这样我就不必告诉用户右键单击该文件然后更改设置。我有一个MyUtilities.exe文件。当我运行时:Process.Start(“ MyUtilities.exe”,“ SomeParameter”);如果在没有管理员权限的情况下运行,则该进程的退出代码为0(确定)。如果我以...
这看起来很简单。只需向注册表添加一个值。
键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
-或-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
如果调用过程以管理员权限执行,并且开始生成“ MyUtilites.exe”,它也将以管理员身份启动。只需转到项目的属性并查找以XML格式编写的清单文件即可。您将在该文件中看到“ asInvoker”,将其更改为“ requireAdministrator”。