منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج (/showthread.php?tid=2256)



كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج - عبد الله - 16-03-14

السلام عليكم ورحمة الله وبركاته

يوجد لدي برنامج من خلاله استطيع اطفاء service معينة أو تشغيلها ...

لكن هذا الزر يحتاج للعمل تحت وضع run as administrator ، ولكني لا اريد تفعيلها من البداية مع البرنامج ولكني اريد تفعيلها فقط عند الضغط على هذا الزر ، كيف افعل هذا ؟


RE: كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج - Aly El-Haddad - 16-03-14

هذا الكود يغلق البرنامج ثم يعيد بدئه كمسؤول:
PHP كود :
Dim isEleveted As Boolean
        Dim identity 
As Security.Principal.WindowsIdentity Security.Principal.WindowsIdentity.GetCurrent()
        
Dim principal As New Security.Principal.WindowsPrincipal(identity)
        
isEleveted principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator)
        If 
Not isEleveted Then
            
If MsgBox("Do you want to run as an administrator?"MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                Dim P 
As Process Process.GetCurrentProcess
                Dim SF 
As New Diagnostics.ProcessStartInfo
                SF
.FileName Application.ExecutablePath
                SF
.Verb "runas"
                
P.StartInfo SF
                P
.Start()
            
End If
            
Application.Exit()
        
End If 

كما يمكنك إضافة ملف صغير بجانب برنامجك ينفذ هذا الأمر فقط و يبدأ كمسؤول عندما يأمره برنامجك بذلك.


RE: كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج - عبد الله - 16-03-14

اخي علي الحداد :

المشكلة انه يوجد في البرنامج مربع نص فيه خاصية السحب والإلقاء ، عند تفعيل الأمر ( تشغيل كمسؤول ) مع البرنامج في البداية يتم تعطيل الإلقاء في هذا الوضع ، لذلك أريد أن يعمل وضع المسؤول فقط مع الزر ، هل يمكن فعل ذلك ؟


RE: كيف يمكن تمكين أداة من العمل بالوضع الآمن خلال عمل البرنامج - Aly El-Haddad - 16-03-14

في البداية أنشئ Console Application و ليكن هذا كوده:
PHP كود :
Module Module1

    Sub Main
()
        
Dim args As ObjectModel.ReadOnlyCollection(Of String) = My.Application.CommandLineArgs
        
If args.Count 0 Then
            Dim argsStr 
As String() = New String(args.Count 1) {}
            
args.CopyTo(argsStr0)
            
Dim txt As String Strings.Join(argsStr" ")
            
MsgBox(txt'''Now do whatever you want with txt
        End If
    End Sub
End Module 

الآن ضع الملف التنفيذي لهذا الـConsoleApplication بجانب الملف التنفيذي لمشروعك
و في حدث الإفلات في مشروعك ضع الكود:
PHP كود :
Dim isEleveted As Boolean
        Dim identity 
As Security.Principal.WindowsIdentity Security.Principal.WindowsIdentity.GetCurrent()
        
Dim principal As New Security.Principal.WindowsPrincipal(identity)
        
isEleveted principal.IsInRole(Security.Principal.WindowsBuiltInRole.Administrator)
        If 
Not isEleveted Then
            MsgBox
("To do this action you will need the administrator authorities."MsgBoxStyle.OkOnly)
            
Dim P As New Process
            Dim SF 
As New Diagnostics.ProcessStartInfo
            SF
.FileName Application.StartupPath "\ConsoleApplication1"
            
SF.Verb "runas"
            
SF.WindowStyle ProcessWindowStyle.Hidden
            SF
.Arguments "The text dropped on the TextBox"
            
P.StartInfo SF
            P
.Start()
        
End If 

جرب الكود.. ثم غير ما يلزم في الـConsoleApplication