• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 程序设计
  • 信息安全
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统
您的位置:首页 > 操作系统 >Windows > Win7编程:在按钮中加入管理员权限运行盾牌图标教程

Win7编程:在按钮中加入管理员权限运行盾牌图标教程

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-12

佚名 通过本文向大家介绍了win7前进后退按钮,win7开始按钮,win7显示桌面按钮,win7开始按钮图标,win7没有显示桌面按钮等相关知识,希望对您有所帮助,也希望大家多多支持微课江湖
这篇教程是向大家介绍win7按钮中加入管理员权限运行盾牌图标过程,本教程分两部分,第一,如何实现软件本身运行时申请管理员权限,第二,如何在软件窗体内的按钮上面加入盾牌图标(意味着本功能需要管理员权限执行)。

步骤/方法

1、一、软件自身运行时的管理员权限申请机制

2、在开启UAC的时候,在Win7(Windows Server 2008 R2)或者Vista(Windows Server 2008)中执行程序默认是以一种权限较低的方式执行的,但是在这种方式下,我们有些操作会失败(比如修改注册表,监听端口,往系统目录写入文件等),要实现这些操作,就需要我们以管理员权限执行程序了。

3、当然,只有在程序上右键,选择“以管理员执行”就可以,不过如何让程序自己自动以管理员权限来运行呢,这就需要Manifest了。

4、首先我们来新建个项目(懒得改名字了,就叫WindowsFormsApplication1吧)
Win7编程:在按钮中加入管理员权限运行盾牌图标

5、按F5执行下(恩,貌似没有啥问题[空文档,有问题才怪... ])
Win7编程:在按钮中加入管理员权限运行盾牌图标

6、然后我们添加Manifest(中文版叫“应用程序清单文件”)
Win7编程:在按钮中加入管理员权限运行盾牌图标

Win7编程:在按钮中加入管理员权限运行盾牌图标

7、下面我们看下Manifest的内容——
<?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="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>

8、内容里的说明够详细了吧,只要把 asInvoker替换成requireAdministrator,我们的程序就会默认要求管理员权限运行了,该下执行试试效果。
恩,窗口弹出来了。 看下程序图标:
大功告成...
Win7编程:在按钮中加入管理员权限运行盾牌图标

Win7编程:在按钮中加入管理员权限运行盾牌图标

9、二、下面再说下怎么给程序的按钮上也加上小盾牌图标吧
这我们就需要调用Win32 API了,要调用API么,要先引用命名空间——
using System.Runtime.InteropServices;
然后调用API
[DllImport("user32.dll")] private static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Enables the elevated shield icon on the given button control
/// </summary>
/// <param name="ThisButton">
/// Button control to enable the elevated shield icon on.
/// </param>
///////////////////////////////////////////////////////////////////////
private void EnableElevateIcon_BCM_SETSHIELD(Button ThisButton)
{
// Input validation, validate that ThisControl is not null
if (ThisButton == null)
{
return;
}
// Define BCM_SETSHIELD locally, declared originally in Commctrl.h
uint BCM_SETSHIELD = 0x0000160C;
// Set button style to the system style
ThisButton.FlatStyle = FlatStyle.System;
// Send the BCM_SETSHIELD message to the button control
SendMessage(new HandleRef(ThisButton, ThisButton.Handle), BCM_SETSHIELD, new IntPtr(0), new IntPtr(1));
}
在Form上拖个Button,拖大一点哦,小了图标看不清
然后在Form1_Load里,用API把图标加到Button1上
private void Form1_Load(object sender, EventArgs e)
{
EnableElevateIcon_BCM_SETSHIELD(button1);
}

Win7编程:在按钮中加入管理员权限运行盾牌图标

10、最后执行看下效果吧!
恩?盾牌为啥有点不一样呢,上面那个图标是Windows Server 2008或者Vista上的,Win7和Windows Server 2008 R2上应该是下面这样:
有错误的地方欢迎指证喔。
Win7编程:在按钮中加入管理员权限运行盾牌图标

Win7编程:在按钮中加入管理员权限运行盾牌图标

END

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Win7电脑关机按钮设置教学
  • Win7编程:在按钮中加入管理员权限运行盾牌图标教程

相关文章

  • 2017-05-12XP系统下手动加载Q77芯片组的AHCI驱动安装教程
  • 2017-05-12Win10 还在悄悄搜集你的数据:量特大 7月29日才停止
  • 2017-05-12玩转Windows7系统下的XP Mode模式
  • 2017-05-12Win 10系统如何打开自动搜索网络?打开自动搜索网络的方法
  • 2017-05-12Win10 RTM简体中文正式版ISO镜像下载大全
  • 2017-05-12win7系统长时间未登录密码已过期该怎么办?
  • 2017-05-12Win8系统下安装网络打印机的详细步骤(全程图解)
  • 2017-05-12关闭插入U盘自动播放的五个方法
  • 2017-05-12Win7打开Word程序提示宏错误是什么原因如何解决
  • 2017-05-12win7系统打开浏览器提示浏览器Cookie功能被禁请开启此功能的解决方法图文教程

文章分类

  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统

最近更新的内容

    • Windows 8.1系统电话激活时微软返回代码无法输入的两种解决方法
    • Windows里隐藏文件夹的方式 如何更专业的隐藏文件夹
    • 微软发布Win10升级指导视频 我的Windows 10升级在哪里?
    • Win10 IoT物联网预览版更新内容和已知修复问题汇总
    • win8.1怎么关闭skydrive?win8.1 skydrive卸载教程
    • windows7系统下关于IPv6的命令行快速关闭问题探讨
    • 一招儿使你的Windows 8/RT关机更加便捷(vbs)
    • win7下强制结束进程命令的方法
    • 微软发布Win10 Build 9879新补丁 修复IE崩溃问题
    • Win8系统如何查看mac地址?Win8系统查看mac地址的两种方法

关于我们 - 联系我们 - 免责声明 - 网站地图 - 投诉建议

©CopyRight 2015-2017 www.weikejianghu.com Inc All Rights Reserved. 微课江湖 版权所有