UAC рддрдХрдиреАрдХ рдирд╡реАрдирддрдо рд╡рд┐рдВрдбреЛрдЬ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдШрдЯрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореИрд▓рд╡реЗрдпрд░ рдФрд░ рд╡рд╛рдпрд░рд╕ рд╕реЗ рд▓рдбрд╝рддреЗ рд╕рдордп рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдмрджрд▓реЗ рдореЗрдВ, рдЖрд╡реЗрджрди рдкрддреНрд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдкрд░рд┐рд╕реНрдерд┐рддрд┐" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдм рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ "рдпреВрдПрд╕реА рдХреЛ рдХреИрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ", "рдХреИрд╕реЗ рдпреВрдПрд╕реА рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдВ" рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХреНрдпреЛрдВ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реИ? рдХреНрдпреЛрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реЛ, рд╣рдо рдШреБрд╕рдкреИрдард┐рдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?
рджреЛрд╕реНрдд рдмрдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ!
рдиреАрдЪреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдШреЛрд╖рдгрд╛рдкрддреНрд░
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдХреБрд░реВрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд╡рд┐рдХрд▓реНрдк - рдкреНрд░рдХрдЯ рд╕рдВрдкрд╛рджрдиред рд╡рд╣ рдмреБрд░рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛? рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╡рд┐рдВрдбреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЙрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрдиреБрдорддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рд╣реЛрдЧреАред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд┐рдХрд▓реНрдк рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред
рдЗрд╕реЗ рддреБрд░рдВрдд рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдСрдЯреЛрд░рди рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред рд╡рд┐рдВрдбреЛрдЬ рдХреЗрд╡рд▓ рдмрд┐рдирд╛ рдХрд┐рд╕реА UAC рд╡рд┐рдВрдбреЛ рдХреЛ рджрд┐рдЦрд╛рдП, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкрдЯрдХ рджреЗрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (
рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ )
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
:
- asInvoker тАФ (-). -.
- highestAvailable тАФ . .. , .
- requireAdministrator тАФ . .
. , , , , , .
, , ( UAC). , . (, , C#):
public static bool IsAdmin()
{
System.Security.Principal.WindowsIdentity id = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal p = new System.Security.Principal.WindowsPrincipal(id);
return p.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
}
, . ? , - , . . :
public static void RunAsAdmin(string aFileName, string anArguments)
{
System.Diagnostics.ProcessStartInfo processInfo = new System.Diagnostics.ProcessStartInfo();
processInfo.FileName = aFileName;
processInfo.Arguments = anArguments;
processInfo.UseShellExecute = true;
processInfo.Verb = "runas"; //
System.Diagnostics.Process.Start(processInfo);
}
? :
1.
. , . WinAPI .NET, , .
DHCP Client, ,
sc.exe start dhcp
, .
2.
. , WinAPI , . , . , , ..
2.
. , . . , Windows , - .
3.
. , , . . - , . , StackOverflow , , .
4.
. , : . (
IsAdmin()) , , , . (
IsAdmin()
true) .
, . UAC, ┬л┬╗ .
, - . .
UAC .

, link-label' , UAC. , , , , .
WinForms- .
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr SendMessage(HandleRef hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
public static void SetButtonShield(Button btn, bool showShield)
{
// BCM_SETSHIELD = 0x0000160C
btn.FlatStyle = FlatStyle.System;
SendMessage(new HandleRef(btn, btn.Handle), 0x160C, IntPtr.Zero, showShield ? new IntPtr(1) : IntPtr.Zero);
}
, WinForms
WPF, . ,
ImageSource - , .
System.Drawing.Icon img = System.Drawing.SystemIcons.Shield;
System.Drawing.Bitmap bitmap = img.ToBitmap();
IntPtr hBitmap = bitmap.GetHbitmap();
ImageSource wpfBitmap =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap, IntPtr.Zero, Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
, .
, ( MessageBox). , . , , .
.

, .

, , UAC.
github.
, .