草庐IT

c# - 如何让控制台应用程序始终以管理员身份运行?

我有一个控制台应用程序,它是为由erp软件调用而开发的。他们在erp中调用我的应用程序,当他们这样做时,我总是会收到与权限不足相关的错误。我已经在所有用户的exe属性中选中了“以管理员身份运行此程序”复选框,但结果是一样的。我已经阅读了一些关于添加list的内容,该list将使应用程序提示uac对话框,但这不是我想要的,因为该应用程序将从服务器上的erp调用,而客户端将看不到服务器上的对话框。谁能给我解释一下如何让这个控制台应用程序始终以管理员身份运行? 最佳答案 添加到您的项目应用程序list文件(添加->新项目->常规->应用程

c# - 当 UAC 被拒绝时,Process.Start 永远不会返回

我有一个更新程序exe,用于关闭主exe,用更新的exe替换它,然后启动更新的exe。当更新程序尝试启动更新的exe时,如果UAC权限对话框被用户拒绝,更新程序将挂起。这是因为Process.Start()函数永远不会返回。顺便说一下,我的CPU周期表显示几乎没有使用。我希望我所有的用户都对UAC说"is",但既然我在这里,我想至少用某种错误消息来处理这种情况。假设我的用户至少拥有Windows7。exe本身是32位Winforms应用程序。目标.NetFramework是4.0。使用VisualStudio2010Ultimate。关于如何检测我的用户何时拒绝UAC对话框的任何想法?

c# - 如何绕过应用程序范围设置为只读?

如果无论如何都无法更改它们的默认值,它们有什么用?反问。首先,绕过设置系统并直接写入应用程序范围设置文件的最佳方法是什么(下一段中的安全问题)?XmlReader/XmlWriter?IIRC,如果应用程序试图写入其ProgramFiles文件夹,WindowsVista和7会采取一些措施来防止这种情况发生。我想我需要调用UAC来提升,我必须把那个花哨的盾牌图标放在我应用程序的选项窗口的确定按钮上等等。链接到快速操作方法?或者,您可能会告诉我,我正在尝试做的事情很愚蠢,我应该将我的可变应用程序范围设置完全存储在其他地方。 最佳答案

c# - 如何使用 .NET UAC 提升 COM 组件

我找到了一个article关于如何通过调用提升用C++编写的COM对象CoCreateInstanceAsAdmin。但是我无法找到或做的是一种将我的.NET(c#)应用程序的组件实现为COM对象然后调用该对象以执行需要UAC提升的任务的方法。MSDN将其记录为adminCOMobjectmodel.我知道以管理员身份启动应用程序(或其他应用程序)并在单独的进程中执行任务是可能且非常容易的(例如参见postfromDanielMoth,但我正在寻找的是一种在同一个未提升的.NET可执行文件中执行所有操作的方法。这样做当然会在新进程中生成COM对象,但是由于透明编码,.NETCOM对象的

c# - 在 C# 中处理 UAC 的正确方法

我有一个应用程序(Windows服务)安装在ProgramFiles文件夹的目录中。除了此应用程序之外,还有另一个WinForms应用程序,用于配置服务(除其他外)。当它进行配置时,它会将更改保存到与服务一起存在的配置文件中。在Vista/Win7上运行时,UAC会阻止用户保存到配置文件。我想做的是:将盾牌图标放在用于配置的菜单项旁边选择此项时提示UAC权限仅在需要的操作系统上显示图标/提示仅在需要权限时显示图标/提示(例如,如果应用程序安装在不需要UAC权限的地方)我真的不想以管理员身份运行整个应用程序,因为它还用于其他不需要UAC权限的目的(因此设置应用程序list文件不是正确的解

c# - dotnet 核心应用程序以管理员身份运行

我有一个需要管理员权限才能运行的dotnet控制台应用程序。我找不到该怎么做。在常规项目中,我会添加一个app.manifest并设置但我不知道如何将它嵌入到构建中。我该怎么做? 最佳答案 我发现最简单的解决方法是添加app.manifest文件,其设置类似于netframeworkapp然后在您的网络核心项目文件(C#项目中的.csproj)中添加以下内容:app.manifest*在控制台和WPFnetcore3.0中工作 关于c#-dotnet核心应用程序以管理员身份运行,我们在S

c++ - 如何使用 C++ 以编程方式检测 Windows 8 中是否启用了 UAC?

在WindowsXP/Windows7中,我可以检查注册表以确定UAC是否已启用,但这个技巧不适用于Windows8。BOOLFileOps::IsUacEnabled(){LPCTSTRpszSubKey=_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");LPCTSTRpszValueOn=_T("EnableLUA");DWORDdwType=0;DWORDdwValue=0;DWORDdwValueSize=sizeof(DWORD);if(ERROR_SUCCESS!=SHGetValue(

c++ - 对于具有 UIAccess ="true"的进程,CreateProcessAsUser 失败并显示 ERROR_ELEVATION_REQUIRED

我正在尝试使用以下代码从我的服务应用程序运行用户模式进程(作为本地系统运行。)用户模式进程的要求是在没有提升的情况下运行,但在其list中有UIAccess="true"以便能够displaytop-mostwindowscorrectlyunderWindows8.所以我这样做(通过我的服务)来运行我的用户模式进程://NOTE:Errorcheckingisomittedforreadability//'dwSessionID'=usersessionIDtorunuser-modeprocessin//'pUserProcPath'=L"C:\\ProgramFiles(x86)

c++ - 为什么/MANIFESTUAC :NO work?

Windows7、C++、VS2008我有一个COMDLL需要使用“runasadministrator”进行注册(这是一个写入注册表的遗留应用程序)DLL由报告应用程序使用,该应用程序使用CoCreateInstance对其进行实例化。除非我还以管理员身份运行报告应用程序,否则这会失败;直到我将链接器设置从/MANIFESTUAC更改为/MANIFESTUAC:NO谁能告诉我这是为什么?这是否意味着我可以使用此设置编写绕过UAC的应用程序? 最佳答案 如果您的安装程序/注册程序应用程序有一个list,并且它说“不要运行提升”,当您

c++ - 如何从更高级别在用户级别启动 Exe

我希望进程始终在用户级别运行。当它由在管理员级别运行的安装程序(自定义,而不是msi)启动时,或者当用户登录时。环顾四周,我不确定这是否可能。 最佳答案 最简单的方法是有2个进程。一个是普通用户,它启动提升/管理进程。然后管理进程可以使用IPC要求普通用户进程做事。如果你没有正常的用户进程,那么RaymondChen文件:Goingfromanunelevatedprocesstoanelevatedprocessiseasy.Youcanrunaprocesswithelevationbypassingtherunasverbto