рдпреВрдПрд╕реА, рдЪрд▓реЛ рджреЛрд╕реНрддреЛрдВ!

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>    

:

. , , , , , .



, , ( 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.

, .

Source: https://habr.com/ru/post/In185264/


All Articles