我的应用程序的一小部分需要管理员权限(软件激活需要转到HKLM)。为此,我在需要管理员权限的按钮上绘制盾牌图标,单击时,我再次使用“runas”动词以适当的参数重新启动应用程序。这个效果很好!然而,现在恰好用户从网络共享执行应用程序。如果他们现在点击“管理员权限按钮”,他们会收到一条错误消息,因为网络驱动器没有为管理员映射,因此找不到可执行文件:-(解决这个问题的最佳方法是什么? 最佳答案 映射的驱动器与每个登录session一起存储,因此在提升后您将不再拥有它们。您可以将管理界面提取到另一个可执行文件中,并在list中将其标记为r
当它准备好复制文件时,它要求用户进行提升,我觉得没问题。需要进行复制的程序无法运行提升(它失去了许多重要的环境变量,我无法改变它的启动方式)。我的后备方案是让它生成一个具有提升的进程,该进程实际上执行文件复制,但我宁愿不必向我正在处理的内容添加另一个exe。 最佳答案 使用COMElevationMoniker实例化IFileOperationshell接口(interface),那么使用该接口(interface)完成的所有文件操作都将被提升,而无需提升调用进程,也不必创建单独的EXE/进程来处理文件访问。
我阅读了如何使用服务来实现,但我想知道是否可以使用简单的应用程序。我正在使用C#。谢谢 最佳答案 你不能。在未经用户同意的情况下运行提升的唯一其他方式是作为计划任务。 关于c#-如何安装程序以便在WindowsVista/7上以管理员权限启动它,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3323639/
我正在使用psexec在Windows7远程机器上运行exe。我需要exe以管理员权限运行,因为它需要更新远程系统中HKLM下的一些注册表。在运行psexec时,我提供了远程系统上管理员帐户的凭据。当远程系统上的UAC关闭时,一切正常。但是开启UAC后,远程exe无法启动。已将exe配置为使用“RequireAdministrator”的list设置。我期望的是在远程计算机上启动exe时看到UAC提示提升警告。如果有某种方法可以绕过提示,那就太好了。但不幸的是,exe无法自行启动。有任何想法吗? 最佳答案 需要的是psexec.ex
如何检测可执行文件是否需要UAC提升?到目前为止,我有两个想法:可执行文件图标的图片识别,以检查UAC屏蔽图标是否在其上和维基百科的信息:http://en.wikipedia.org/wiki/User_Account_ControlitispossibletoprogrammaticallydetectifanexecutablewillrequireelevationbyusingCreateProcess()andsettingthedwCreationFlagsparametertoCREATE_SUSPENDED.Ifelevationisrequired,thenERRO
我搜索了很多类似的问题,都没有解决我的问题。我正在尝试在文件中写入一些内容,但出现错误。我的代码try{Filef=newFile(file_name);f.createNewFile();//System.out.println("Hello");f.setWritable(true);FileWriterfstream=newFileWriter(f);BufferedWriterout=newBufferedWriter(fstream);ListIteratoritr=account.listIterator();//accountisaListobjectwhile(itr.
如何在VB.NET中添加和嵌入list文件,以便为我的应用程序添加UAC支持? 最佳答案 在VB.NET2010中,转到项目→我的项目→应用程序→查看Windows设置。您会看到默认list。在这里,您可以根据需要进行更改。例如,在这种情况下,要在应用程序启动时要求提升UAC,请更改:requestedExecutionLevellevel="asInvoker"uiAccess="false"到requestedExecutionLevellevel="requireAdministrator"uiAccess="false"
所以我一直在尝试从注册表中获取REG_SZ值并将其存储为char*。环顾互联网后,这就是我想出的。问题是我得到的值不是存储在注册表中的值,我得到了一堆随机垃圾。我将如何正确获取该值?HKEYhKey;charvalue[256];//Openthekeyif(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\\",0,KEY_QUERY_VALUE,&hKey)!=ERROR_SUCCESS){return"";}//ReadthevalueDWORDdwType=RE
我的问题:我制作了一个PC游戏(不是使用VisualStudio创建)并通过安装程序创建器将其转换为setup.exe。运行此安装文件时,用户会收到来自Windows的警告:“是否允许来自未知发布者的此应用程序对您的PC进行更改?”我的猜测是我的文件需要在Microsoft以某种方式进行签名或认证。我的问题:任何人都可以告诉我必须遵循的正确步骤,以便用户不会收到此警告吗? 最佳答案 根据@HarryJonhston的一些建议,我将更新答案。并在下面发布原始答案。这是更新:您实际上还没有发现真正的问题。如果您的应用程序未使用EV证书进
Windows7、Vista、Server2008、UAC已激活程序必须声明具有管理员权限才能进行某些安装操作。之后,我希望我的程序在非管理员权限下继续工作。如何在没有管理权限的情况下重新启动它?附言我的程序自行重新安装。我不想为它分发任何额外的程序。所以我的步骤是:在临时目录中下载新版本在管理员权限下自行重启重命名旧的exe文件并从临时目录复制新的exe文件在非管理员权限下自行重启 最佳答案 在UAC下,现在强烈建议不要“在第一次运行时”做任何事情。此外,使用自己动手技术更新自身的程序会发现更困难。你说你不想分发额外的程序,但在U