zoukankan      html  css  js  c++  java
  • 为程序中按钮添加Shield图标

    之前讲的Windows 7兼容性Webcast中我做了一个Shield Icon的Demo,这个图标就是表示点击该按钮后执行的是一个要求提升权限的操作,借此写一下它的主要实现过程以及把Webcast中的Demo放出来。

    其实主要实现是调用了user32.dll中的方法给现有按钮控件贴上一个小图标,可以使用下面方法来实现:

            [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));
            }

    然后直接将按钮传入该方法就可以实现效果:

    EnableElevateIcon_BCM_SETSHIELD(button2);

    实现效果如下:

    注意:这个图标不能将要运行的程序提升权限运行,仅仅是个样子货,呵呵。

    Windows 7 兼容性Webcast Demo 下载

    然后是icacls这个工具,使用Vista的用户可以下载下来用用看,测试命令如下:

    icacls c:\windows

    然后得到如下结果:

    C:\Users\WilsonWu>icacls c:\windows
    c:\windows NT SERVICE\TrustedInstaller:(F)
               NT SERVICE\TrustedInstaller:(CI)(IO)(F)
               NT AUTHORITY\SYSTEM:(M)
               NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
               BUILTIN\Administrators:(M)
               BUILTIN\Administrators:(OI)(CI)(IO)(F)
               BUILTIN\Users:(RX)
               BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
               CREATOR OWNER:(OI)(CI)(IO)(F)

    Successfully processed 
    1 files; Failed processing 0 files

    icacls 工具下载



  • 相关阅读:
    分享最好的HTML5编码教程和参考手册
    随机字符变换效果的jQuery插件开发教程
    拒绝用SEO的眼光来设计你的Meta标签
    GBin1教程:使用jQuery插件jquery.validationEngine实现表单验证功能
    vs 2010 程序发布时出现 TransformXml任务意外失败
    CSS hack
    javascript div 弹出可拖动窗口
    Javascript String类的属性及方法
    兼容浏览器的布局CSS
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
  • 原文地址:https://www.cnblogs.com/WilsonWu/p/1422470.html
Copyright © 2011-2022 走看看