IT之家 7 月 10 日消息,微軟今天面向 Win11 22H2 和 23H2 用戶推送了 KB5040442 更新,OS 內部版本號升至 22621.3880 和 22631.3880。
IT之家提醒:Win11 22H2 家庭版和專業版將于 2024 年 10 月 8 日終止服務,目前這些版本僅接收安全更新;不過微軟 10 月 8 日之后仍將繼續支持企業版和教育版。
KB5040442 更新只包括一些安全質量更新,主要涉及 Windows Installer、遠程桌面 MultiPoint Server、遠程身份驗證撥入用戶服務 (RADIUS) 協議方面的問題。
Windows Installer。修復應用程序時,用戶賬戶控制 (UAC) 不會提示輸入憑據。安裝此更新后,UAC 將提示輸入更新。因此,可能需要更新自動化腳本。為此,請添加“盾牌”圖標。它指示該過程需要完全的管理員訪問權限。若要關閉 UAC 提示符,請將 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\DisableLUAInRepair 注冊表值設置為 1。
遠程桌面 MultiPoint Server。爭用條件會導致服務停止響應。
遠程身份驗證撥入用戶服務 (RADIUS) 協議。此問題與 MD5 沖突相關。
除此之外,此次更新中還包括一些已知問題,例如從 Windows Pro 升級到有效的 Windows 企業版訂閱時可能會遇到問題(錯誤代碼 0x80070005),微軟暫時沒有解決辦法,只表示正努力在未來幾周內發布解決方案。
WPF 按鈕添加 UAC 盾牌圖標
本文經原作者授權以原創方式二次分享,歡迎轉載、分享。
WPF 按鈕添加 UAC 盾牌圖標
作者: zhaotianff - 趙嘉
原文鏈接[1]:https://www.cnblogs.com/zhaotianff/p/17662237.html
在上一篇[2]文章中,介紹了如何獲取系統Shell
的圖標。在C#中
調用SHGetStockIconInfo
即可獲取獲取圖標
1)定義SHGetStockIconInfo
函數用到的數據結構
public enum SHSTOCKICONID : uint
{
/// <summary>Document of a type with no associated application.</summary>
SIID_DOCNOASSOC=0,
/// <summary>Document of a type with an associated application.</summary>
SIID_DOCASSOC=1,
/// <summary>Generic application with no custom icon.</summary>
SIID_APPLICATION=2,
/// <summary>Folder (generic, unspecified state).</summary>
SIID_FOLDER=3,
/// <summary>Folder (open).</summary>
SIID_FOLDEROPEN=4,
/// <summary>5.25-inch disk drive.</summary>
SIID_DRIVE525=5,
/// <summary>3.5-inch disk drive.</summary>
SIID_DRIVE35=6,
/// <summary>Removable drive.</summary>
SIID_DRIVEREMOVE=7,
/// <summary>Fixed drive (hard disk).</summary>
SIID_DRIVEFIXED=8,
/// <summary>Network drive (connected).</summary>
SIID_DRIVENET=9,
/// <summary>Network drive (disconnected).</summary>
SIID_DRIVENETDISABLED=10,
/// <summary>CD drive.</summary>
SIID_DRIVECD=11,
/// <summary>RAM disk drive.</summary>
SIID_DRIVERAM=12,
/// <summary>The entire network.</summary>
SIID_WORLD=13,
/// <summary>A computer on the network.</summary>
SIID_SERVER=15,
/// <summary>A local printer or print destination.</summary>
SIID_PRINTER=16,
/// <summary>The Network virtual folder (FOLDERID_NetworkFolder/CSIDL_NETWORK).</summary>
SIID_MYNETWORK=17,
/// <summary>The Search feature.</summary>
SIID_FIND=22,
/// <summary>The Help and Support feature.</summary>
SIID_HELP=23,
/// <summary>Overlay for a shared item.</summary>
SIID_SHARE=28,
/// <summary>Overlay for a shortcut.</summary>
SIID_LINK=29,
/// <summary>Overlay for items that are expected to be slow to access.</summary>
SIID_SLOWFILE=30,
/// <summary>The Recycle Bin (empty).</summary>
SIID_RECYCLER=31,
/// <summary>The Recycle Bin (not empty).</summary>
SIID_RECYCLERFULL=32,
/// <summary>Audio CD media.</summary>
SIID_MEDIACDAUDIO=40,
/// <summary>Security lock.</summary>
SIID_LOCK=47,
/// <summary>A virtual folder that contains the results of a search.</summary>
SIID_AUTOLIST=49,
/// <summary>A network printer.</summary>
SIID_PRINTERNET=50,
/// <summary>A server shared on a network.</summary>
SIID_SERVERSHARE=51,
/// <summary>A local fax printer.</summary>
SIID_PRINTERFAX=52,
/// <summary>A network fax printer.</summary>
SIID_PRINTERFAXNET=53,
/// <summary>A file that receives the output of a Print to file operation.</summary>
SIID_PRINTERFILE=54,
/// <summary>A category that results from a Stack by command to organize the contents of a folder.</summary>
SIID_STACK=55,
/// <summary>Super Video CD (SVCD) media.</summary>
SIID_MEDIASVCD=56,
/// <summary>A folder that contains only subfolders as child items.</summary>
SIID_STUFFEDFOLDER=57,
/// <summary>Unknown drive type.</summary>
SIID_DRIVEUNKNOWN=58,
/// <summary>DVD drive.</summary>
SIID_DRIVEDVD=59,
/// <summary>DVD media.</summary>
SIID_MEDIADVD=60,
/// <summary>DVD-RAM media.</summary>
SIID_MEDIADVDRAM=61,
/// <summary>DVD-RW media.</summary>
SIID_MEDIADVDRW=62,
/// <summary>DVD-R media.</summary>
SIID_MEDIADVDR=63,
/// <summary>DVD-ROM media.</summary>
SIID_MEDIADVDROM=64,
/// <summary>CD+ (enhanced audio CD) media.</summary>
SIID_MEDIACDAUDIOPLUS=65,
/// <summary>CD-RW media.</summary>
SIID_MEDIACDRW=66,
/// <summary>CD-R media.</summary>
SIID_MEDIACDR=67,
/// <summary>A writable CD in the process of being burned.</summary>
SIID_MEDIACDBURN=68,
/// <summary>Blank writable CD media.</summary>
SIID_MEDIABLANKCD=69,
/// <summary>CD-ROM media.</summary>
SIID_MEDIACDROM=70,
/// <summary>An audio file.</summary>
SIID_AUDIOFILES=71,
/// <summary>An image file.</summary>
SIID_IMAGEFILES=72,
/// <summary>A video file.</summary>
SIID_VIDEOFILES=73,
/// <summary>A mixed file.</summary>
SIID_MIXEDFILES=74,
/// <summary>Folder back.</summary>
SIID_FOLDERBACK=75,
/// <summary>Folder front.</summary>
SIID_FOLDERFRONT=76,
/// <summary>Security shield. Use for UAC prompts only.</summary>
SIID_SHIELD=77,
/// <summary>Warning.</summary>
SIID_WARNING=78,
/// <summary>Informational.</summary>
SIID_INFO=79,
/// <summary>Error.</summary>
SIID_ERROR=80,
/// <summary>Key.</summary>
SIID_KEY=81,
/// <summary>Software.</summary>
SIID_SOFTWARE=82,
/// <summary>A UI item, such as a button, that issues a rename command.</summary>
SIID_RENAME=83,
/// <summary>A UI item, such as a button, that issues a delete command.</summary>
SIID_DELETE=84,
/// <summary>Audio DVD media.</summary>
SIID_MEDIAAUDIODVD=85,
/// <summary>Movie DVD media.</summary>
SIID_MEDIAMOVIEDVD=86,
/// <summary>Enhanced CD media.</summary>
SIID_MEDIAENHANCEDCD=87,
/// <summary>Enhanced DVD media.</summary>
SIID_MEDIAENHANCEDDVD=88,
/// <summary>High definition DVD media in the HD DVD format.</summary>
SIID_MEDIAHDDVD=89,
/// <summary>High definition DVD media in the Blu-ray Disc? format.</summary>
SIID_MEDIABLURAY=90,
/// <summary>Video CD (VCD) media.</summary>
SIID_MEDIAVCD=91,
/// <summary>DVD+R media.</summary>
SIID_MEDIADVDPLUSR=92,
/// <summary>DVD+RW media.</summary>
SIID_MEDIADVDPLUSRW=93,
/// <summary>A desktop computer.</summary>
SIID_DESKTOPPC=94,
/// <summary>A mobile computer (laptop).</summary>
SIID_MOBILEPC=95,
/// <summary>The User Accounts Control Panel item.</summary>
SIID_USERS=96,
/// <summary>Smart media.</summary>
SIID_MEDIASMARTMEDIA=97,
/// <summary>CompactFlash media.</summary>
SIID_MEDIACOMPACTFLASH=98,
/// <summary>A cell phone.</summary>
SIID_DEVICECELLPHONE=99,
/// <summary>A digital camera.</summary>
SIID_DEVICECAMERA=100,
/// <summary>A digital video camera.</summary>
SIID_DEVICEVIDEOCAMERA=101,
/// <summary>An audio player.</summary>
SIID_DEVICEAUDIOPLAYER=102,
/// <summary>Connect to network.</summary>
SIID_NETWORKCONNECT=103,
/// <summary>The Network and Internet Control Panel item.</summary>
SIID_INTERNET=104,
/// <summary>A compressed file with a .zip file name extension.</summary>
SIID_ZIPFILE=105,
/// <summary>The Additional Options Control Panel item.</summary>
SIID_SETTINGS=106,
/// <summary>High definition DVD drive (any type - HD DVD-ROM, HD DVD-R, HD-DVD-RAM) that uses the HD DVD format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_DRIVEHDDVD=132,
/// <summary>High definition DVD drive (any type - BD-ROM, BD-R, BD-RE) that uses the Blu-ray Disc format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_DRIVEBD=133,
/// <summary>High definition DVD-ROM media in the HD DVD-ROM format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIAHDDVDROM=134,
/// <summary>High definition DVD-R media in the HD DVD-R format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIAHDDVDR=135,
/// <summary>High definition DVD-RAM media in the HD DVD-RAM format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIAHDDVDRAM=136,
/// <summary>High definition DVD-ROM media in the Blu-ray Disc BD-ROM format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIABDROM=137,
/// <summary>High definition write-once media in the Blu-ray Disc BD-R format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIABDR=138,
/// <summary>High definition read/write media in the Blu-ray Disc BD-RE format.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_MEDIABDRE=139,
/// <summary>A cluster disk array.</summary>
/// <remarks>Windows Vista with SP1 and later.</remarks>
SIID_CLUSTEREDDRIVE=140,
/// <summary>The highest valid value in the enumeration.</summary>
/// <remarks>Values over 160 are Windows 7-only icons.</remarks>
SIID_MAX_ICONS=175
}
[Flags]
public enum SHGSI : uint
{
/// <summary>The szPath and iIcon members of the SHSTOCKICONINFO structure receive the path and icon index of the requested icon, in a format suitable for passing to the ExtractIcon function. The numerical value of this flag is zero, so you always get the icon location regardless of other flags.</summary>
SHGSI_ICONLOCATION=0,
/// <summary>The hIcon member of the SHSTOCKICONINFO structure receives a handle to the specified icon.</summary>
SHGSI_ICON=0x000000100,
/// <summary>The iSysImageImage member of the SHSTOCKICONINFO structure receives the index of the specified icon in the system imagelist.</summary>
SHGSI_SYSICONINDEX=0x000004000,
/// <summary>Modifies the SHGSI_ICON value by causing the function to add the link overlay to the file's icon.</summary>
SHGSI_LINKOVERLAY=0x000008000,
/// <summary>Modifies the SHGSI_ICON value by causing the function to blend the icon with the system highlight color.</summary>
SHGSI_SELECTED=0x000010000,
/// <summary>Modifies the SHGSI_ICON value by causing the function to retrieve the large version of the icon, as specified by the SM_CXICON and SM_CYICON system metrics.</summary>
SHGSI_LARGEICON=0x000000000,
/// <summary>Modifies the SHGSI_ICON value by causing the function to retrieve the small version of the icon, as specified by the SM_CXSMICON and SM_CYSMICON system metrics.</summary>
SHGSI_SMALLICON=0x000000001,
/// <summary>Modifies the SHGSI_LARGEICON or SHGSI_SMALLICON values by causing the function to retrieve the Shell-sized icons rather than the sizes specified by the system metrics.</summary>
SHGSI_SHELLICONSIZE=0x000000004
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct SHSTOCKICONINFO
{
public UInt32 cbSize;
public IntPtr hIcon;
public Int32 iSysIconIndex;
public Int32 iIcon;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=UACIcon.MAX_PATH)]
public string szPath;
}
說明:
SHSTOCKICONID
這里實際只需要定義SIID_SHIELD
這一個值就行了,我這里全部貼出來了,以后需要用到的時候可以直接到這里復制了。
2)定義UACIcon
的類,在這個類里封裝獲取UAC
圖標的方法
public class UACIcon
{
public const int MAX_PATH=260;
[DllImport("Shell32.dll", SetLastError=false)]
public static extern Int32 SHGetStockIconInfo(SHSTOCKICONID siid, SHGSI uFlags, ref SHSTOCKICONINFO psii);
[DllImport("user32.dll", SetLastError=true)]
static extern bool DestroyIcon(IntPtr hIcon);
public static BitmapSource GetUACIcon()
{
BitmapSource shieldSource=;
SHSTOCKICONINFO sii=new SHSTOCKICONINFO();
sii.cbSize=(UInt32)Marshal.SizeOf(typeof(SHSTOCKICONINFO));
Marshal.ThrowExceptionForHR(SHGetStockIconInfo(SHSTOCKICONID.SIID_SHIELD,
SHGSI.SHGSI_ICON | SHGSI.SHGSI_LARGEICON,
ref sii));
shieldSource=System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
sii.hIcon,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
DestroyIcon(sii.hIcon);
return shieldSource;
}
}
上面的代碼中包含了從句柄創建
WPF ImageSource
的代碼,如果對這一塊不了解的話,可以參考[3]
3)界面XAML
如下:
<Grid>
<Button Width="74" Height="28">
<Button.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Image Stretch="Uniform" x:Name="img_Icon" Width="18" Height="18" HorizontalAlignment="Right"/>
<Label Content="確認" Grid.Column="1" HorizontalAlignment="Left"/>
</Grid>
</Button.Content>
</Button>
</Grid>
4)加載圖標
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.img_Icon.Source=UACIcon.GetUACIcon();
}
}
原文鏈接: https://www.cnblogs.com/zhaotianff/p/17662237.html
[2]上一篇: https://www.cnblogs.com/zhaotianff/p/17662167.html
[3]參考: https://learn.microsoft.com/en-us/dotnet/api/system.windows.interop.imaging.createbitmapsourcefromhicon?view=windowsdesktop-7.0