منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تشغيل البرنامج كمسؤول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كيفيه جعل البرنامج يعمل بصلاحيات المستخدم دون الضغط على يمين الماوس واختيار خيار Run as administrator
بعد اذن صاحب السؤال و الاخوه المشاركين
يبقى السؤال قائما فهل هناك طريقة ما لفتح تطبيق كمسؤول ضمنيا يعني دون كلك يمين  ودون الطريقة في موضوع الجواب اي دون ظهور تلك النافذة لتاكيد تشغيله كمسؤول
ام لا
وكاضافة هذه طريقة اخري تفضي الى نفس النتيجة
كود :
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
السلام عليكم 
الحل سهل من داخل الفيجوال استوديو
انظر الصور في المرفقات