关于以管理员身份运行的问题!

flcat2003 2012-01-19 11:30:16
我是编程的初学者,我的电脑需要在各个办公地点来回移动,经常要更改IP设置,于是用C#2010写个了小的窗体程序调用windows的net命令方便更改ip。
可是在win7home版里须要以管理员身份运行才能成功,我把制作好的小程序的属性改成默认以管理员身份运行,但启动后还是须要点击一个对话框才对运行。
请问如何在不关闭windows安全服务的前提下,改写这个小程序可以让它在默认管理员方式运行,且不提示直接运行?高手们能不能给出个具体实现方法!
...全文
639 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
李班头 2012-01-19
  • 打赏
  • 举报
回复
这个额这个
rabbit5 2012-01-19
  • 打赏
  • 举报
回复
不是很清楚,顶一下吧~

如果只是自己用,可以直接用管理员账户登录系统就ok了吧
jiuhexuan 2012-01-19
  • 打赏
  • 举报
回复
要解决这个问题,让命令提示符每次都强制以管理员身份运行,你可以使用以下几种方式:
1.

修改文件绕过系统验证(不推荐)

首先你可能会想到,系统是如何判断这个程序是系统内置程序的呢?如果把文件从系统文件夹拷贝出来,可以解决以上问题吗?实验结果是不行的,因为系统是通过数字签名来判断该程序是否是 Windows 内置的。数字签名是保证文件在发布之后不被修改,并且标明发布者身份的一种技术,只要文件被修改,该文件的 Windows 签名就会失效,系统就不会认为它是内置程序了。但修改系统文件不是一种好方法,我们有更好的办法可以实现。

2.

注册表设置兼容性选项

其实,文件的兼容性设置的选项是保存在用户的注册表中的。我们可以运行注册表编辑器,然后找到 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 这个路径,其中就保存了已经设置兼容性模式的所有程序及其设置信息:
依葫芦画瓢,新建一个字符串值,名称设置为程序的路径(不带引号),数据为“RUNASADMIN”,这样就可以绕过系统的限制,同时又不必修改该程序,强制指定该程序以管理员身份运行了:


3.
快捷方式设置

第二种方法也很方便,只需在程序的快捷方式上点右键,选择‘属性’,并单击“快捷方式”选项卡上的“高级”按钮,看到没,在这里也有一个“以管理员身份运行”的选项。选中之后,我们的目的就达到了:
不过需要注意的是,第一种方法是对当前用户生效的,第二种方法只是快捷方式的一个属性,因此只对该快捷方式生效。例如,对开始菜单中的“画图”快捷方式进行了该设置,只有在单击该快捷方式时才会以管理员身份运行画图程序,运行其他地方的快捷方式,以及直接运行画图程序exe都不会应用该设置。
jiuhexuan 2012-01-19
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="mulitray.exe.manifest"
type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


保存上面的代码后缀名为:.manifest

将该文件添加到资源当中。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧