`

C#让程序自动以管理员身份运行

    博客分类:
  • C#
阅读更多

C#让程序自动以管理员身份运行

UAC来控制程序访问

 

工具:VS 2008

 

第一步,

      新建一个项目(winform)

 

第二步,

      在新建项目中,新建项 应用程序清单文件(app.manifest)

 

第三步,

      打开 app.manifest 文件

          修改 <requestedExecutionLevel level="asInvoker" uiAccess="false" />

          修改为 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

          重新编译 打开 debug目录 就可以看到图标右下角有个小盾牌的标识。

如下代码:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 清单选项
            如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 
            requestedExecutionLevel 节点。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            如果您希望利用文件和注册表虚拟化提供
            向后兼容性,请删除 requestedExecutionLevel 节点。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

 

第四步,

      程序中判断是否以管理员身份运行

代码如下:

/// <summary>
/// 当前是否是管理员身份运行
/// </summary>
/// <returns></returns>
public static bool IsAdministrator()
{
    try
    {
        WindowsIdentity identity = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(identity);
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
    catch
    {
        return true;
    }
}

 

 

其他:

C# 修改IP地址

static void SetNetworkAdapter()
        {
            ManagementBaseObject inPar = null;
            ManagementBaseObject outPar = null;
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if (!(bool)mo["IPEnabled"])
                    continue;

                //设置ip地址和子网掩码 
                inPar = mo.GetMethodParameters("EnableStatic");
                inPar["IPAddress"] = new string[] { "10.22.21.111", "192.168.1.9" };
                inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" };
                outPar = mo.InvokeMethod("EnableStatic", inPar, null);

                //设置网关地址 
                inPar = mo.GetMethodParameters("SetGateways");
                inPar["DefaultIPGateway"] = new string[] { "10.22.21.1", "192.168.10.1" };
                outPar = mo.InvokeMethod("SetGateways", inPar, null);

                //设置DNS 
                inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
                inPar["DNSServerSearchOrder"] = new string[] { "179.32.42.4", "179.32.42.5" };
                outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
                break;
            }
        }

  

 

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    C# 让程序自动以管理员身份运行

    exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,(C#)

    C#写的一个截图程序

    功能还算不错 可以支持GIF录制 和插件等编写 第一次运行 会弹出主窗口进行快捷键的设置 因为需要修改注册表开机启动 所以需要使用管理员权限运行 启动截图的时候 [W,A,S,D] 微距移动鼠标 按下 V -&gt; 自动框选的时候...

    自己用C#写的一个截图程序

    因为需要修改注册表开机启动 所以需要使用管理员权限运行 启动截图的时候 [W,A,S,D] 微距移动鼠标 按下 V -&gt; 自动框选的时候是否 只获取可见窗体 按下 T -&gt; 是否获取透明窗体 按下 H -&gt; 是否对webbrowser进行spy 在...

    hyper-v虚拟机管理控制模块 V0.1 源码

    所有虚拟机操作都需要使用管理员权限(UAC) (包括获取虚拟机信息) (hyper-v管理器都需要管理员权限) (在易语言主程序右键 点击以管理员身份运行 之后用刚刚运行的易语言打开源码)。防止商业用途 删除了部分...

    c#进程守护软件-附源码

    25、加入开机自启动选择项,保存到注册表中,加入了默认以管理员身份运行,解决配置文件不在system32下,开机启动找不到配置文件的问题。 26、没有对本程序做单一启动的限制,如果需要只运行一个实例,重新编译主...

    C#项目开发案例全程实录(第2版)下载地址

     1.9.2 使用图标显示管理员头像 43  1.9.3 云台控制协议 44  1.10 视频采集卡技术 45  1.10.1 视频采集卡选购分析 45  1.10.2 视频采集卡安装 46  1.10.3 视频采集卡中的主要函数 47  1.11 本章总结 49  第2...

    reposUpdater:部署应用程序的简单工具。 clickOnce的轻量级替代方案,允许以管理员身份运行

    clickOnce的轻量级替代方案,允许以管理员身份运行。 它由两个工具ReposUploader和ReposUpdate组成: ReposUploader 将每个文件压缩到项目的bin / release文件夹中的工具,创建一个包含程序包信息(文件名,哈希,...

    MVC4 通用权限管理系统源码

    考虑到手动添加系统管理员角色和用户比较麻烦,初始的程序都是可以匿名访问的,这时候你需要运行系统添加一个系统管理员角色,并添加一个用户赋给系统管理员权限。再添加完系统管理员角色和用户之后你需要修改一下...

    watchdog.rar

    自己写的进程监控小软件,主要功能是选定时间、文件后,自动在选定的时间重启进程,使用钩子的方式,监测如果进程意外关闭,则自动重启,源代码齐全,程序需要右键管理员身份运行

    RunAsAdmin:使用管理员权限启动程序的工具

    以管理员身份运行 RunAsAdmin是一个小程序,允许管理员以普通用户身份登录时以提升的特权启动其他程序。 入门 您可以在轻松下载并运行程序 先决条件 支持.NET Framework(4.7+) 建于 帮助程序类库,用于检测,管理...

    C#编程经验技巧宝典

    4 &lt;br&gt;0009 设置Windows应用程序启动窗体 5 &lt;br&gt;0010 设置Web应用程序起始页 5 &lt;br&gt;0011 如何设置程序的出错窗口 5 &lt;br&gt;0012 如何进行程序调试 6 &lt;br&gt;0013 如何结束不能正常运行的程序 ...

    基于http的文件共享程序

    启动程序FileProvider.exe(win7下需用管理员权限运行),程序自动扫描文件列表(包括所有子文件夹中的文件); 4. 在浏览器中输入本机ip地址和设定的端口号进行访问,将得到一个文件列表并可点击进行下载。 ...

    windows自动登录的方法

    值得注意的是,在需要较高安全性的情况下,最好不要设置自动登录系统方式(尤其是不要设置以管理员身份自动登录系统)。在中文Windows 2000中实现自动登录系统的操作方法如下:  选择“开始”*“运行”,然后输入...

    新版协同办公平台OA(Vs2010,C#,Sql Server)

    工作监控 管理员监控运行,发现问题,可强制干预 归档工作 已办理完成的工作,自动进行归档 工作委托 当前用户指定办理人,所有待办事项自动提交到委托人办理 流程设置 自定义流程、自定义表单、表单各个字段...

    Start10_V4.0_setup_R15.zip

    鼠标右击以管理员权限运行程序/打开文件夹 ;R5 修复win按键bug ;R6 去掉按键钩子,优化程序启动两次bug ;R7 增加多路径开始菜单加载 ;R8 增加定时关机和定时护眼保护 ;R9 限制程序不能多开 ;R11 合并同一层...

    IE9超级拖拽插件

    下载压缩包,解压到任意目录,以管理员身份运行附件中的“命令行”,切换到文件所在的目录,运行“install”。 卸载的过程是类似的,只是要运行“uninstall”。 如果要在64位IE中使用,运行“install 64"和...

    WinForm学生成绩管理系统+项目说明文档

    1该窗口界面仅学生管理员身份用户方可进入 2使用Winfrom相关控件实现学生信息查询功能 3使用自定义控件实现打印预览学生信息功能 4使用NPOI实现学生个人信息及账户信息的导入导出功能,导入后的Excel文件自带排版 5...

    海康监控平台容器,通过web访问的方式整合几个不同时期建设的监控平台以及一大堆nvr。

    还要使用管理员权限运行程序,不然明明安装了控件也会重复提示需要安装控件。这东西对于集成商是没什么用滴,因为可以直接拿sdk。只适合组织内部自行创建和使用,因为海康nvr的sdk是公开的,但是海康平台的sdk 是要...

    HeapProfiler:Windows 堆分析器前端

    请注意,捕获堆信息需要以管理员身份运行(尽管可以在没有管理员的情况下查看保存的捕获)一旦您有一些捕获,从列表中选择其中的两个,然后单击“差异快照”按钮以生成两个快照的差异并在查看器中打开它。...

    ASP&C#教程\精通Asp.net2.0+Sql2005项目开发

    管理员需要功能:管理员登录、考试科目管理、题库管理、用户管理、成绩管理、试卷管理: \MyOnLineExam\App_Code\BusinessLogicLayer 在线考试业务逻辑层,包括以下文件: \Course.cs 考试科目类 ...

Global site tag (gtag.js) - Google Analytics