기타 [vb.net] 필요한 경우에만 권한을 높이는 방법 / 필요한 경우에만 관리자 권한으로 실행
페이지 정보

본문
Imports System
Imports System.Linq
Imports System.Reflection
Imports System.Diagnostics
Imports System.Security.Principal
Imports System.Windows.Forms
Namespace WindowsFormsApp1
    Friend Module Program
        Private Class Form1
            Inherits Form
            Friend Sub New()
                Dim button = New Button With {
                    .Dock = DockStyle.Fill
                }
                AddHandler button.Click, Sub(sender, args) RunAsAdmin()
                Controls.Add(button)
                ElevatedAction()
            End Sub
        End Class
        <STAThread>
        Friend Sub Main(ByVal arguments As String())
            If arguments?.Contains("/run_elevated_action") = True Then
                MsgBox(Join(arguments))
                ElevatedAction()
                Return
            End If
            Application.Run(New Form1())
        End Sub
        Private Sub RunAsAdmin()
            Dim path = Assembly.GetExecutingAssembly().Location
            Using P = Process.Start(New ProcessStartInfo(path, "/run_elevated_action") With {.Verb = "runas"})
                P?.WaitForExit()
            End Using
        End Sub
        Private Sub ElevatedAction()
            MessageBox.Show($"IsElevated: {IsElevated()}")
        End Sub
        Private Function IsElevated() As Boolean
            Using identity = WindowsIdentity.GetCurrent()
                Dim principal = New WindowsPrincipal(identity)
                Return principal.IsInRole(WindowsBuiltInRole.Administrator)
            End Using
        End Function
    End Module
End Namespace
첨부파일
- 
               	
                
                    WindowsApp1.zip  (58.1K)
                
                
365회 다운로드 | DATE : 2022-10-19 11:39:59 
- 이전글[vb.net] 자주 사용하는 소스코드 - 선언 22.10.26
 - 다음글[vb.net] 동적 DLL 폼 (Control) 불러오기 및 클래스 (Class) 함수 불러오기 예제 22.10.13
 
댓글목록
등록된 댓글이 없습니다.



