بعد اذن صاحب السؤال و الاخوه المشاركين
يبقى السؤال قائما فهل هناك طريقة ما لفتح تطبيق كمسؤول ضمنيا يعني دون كلك يمين ودون الطريقة في موضوع الجواب اي دون ظهور تلك النافذة لتاكيد تشغيله كمسؤول
ام لا
وكاضافة هذه طريقة اخري تفضي الى نفس النتيجة
كود :
Imports System.Security.Principal
Imports System.Reflection
Imports Application_Admin_Relauncher.AdminRelauncher
Public Class Form1
Public Function IsUserAdministrator() As Boolean ' للتاكد ان التطبيق يشتغل في وضغ مسؤول او عدمه
Try
Dim user As WindowsIdentity = WindowsIdentity.GetCurrent
Dim principal As WindowsPrincipal = New WindowsPrincipal(user)
Return principal.IsInRole(WindowsBuiltInRole.Administrator)
Catch ex As System.Exception
Return False
End Try
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
RelaunchIfNotAdmin()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(IsUserAdministrator)
End Sub
End Class
Public Class AdminRelauncher
Public Shared Sub RelaunchIfNotAdmin()
If Not AdminRelauncher.RunningAsAdmin Then
MsgBox("Running as admin required!")
Dim proc As ProcessStartInfo = New ProcessStartInfo
proc.UseShellExecute = True
proc.WorkingDirectory = Environment.CurrentDirectory
proc.FileName = Assembly.GetEntryAssembly.CodeBase
proc.Verb = "runas"
Try
Process.Start(proc)
Environment.Exit(0)
Catch ex As Exception
MsgBox(("This program must be run as an administrator! " & vbLf & vbLf + ex.ToString))
Environment.Exit(0)
End Try
End If
End Sub
Private Shared Function RunningAsAdmin() As Boolean
Dim id As WindowsIdentity = WindowsIdentity.GetCurrent
Dim principal As WindowsPrincipal = New WindowsPrincipal(id)
Return principal.IsInRole(WindowsBuiltInRole.Administrator)
End Function
End Class