تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اضافة الدرع لازرار التطبيق بالكود (زر مدير نظام )
#1
كاتب الموضوع : DreamNet

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

ربما العنوان غير واضح بعض الشئ
نحن هنا نتحدث عن انظمة التشغيل الجديدة ابتداء من فيستا اصبح هناك مايسمى بالUAC
قد يلاحظ المستعمل ان هناك بعض الأزرار تأتي بها علامة درع لبعض البرامج



ومن أجل عمل ذلك قد يفكر البعض في استعمال صورة هذا الدرع الموجودة مع الفيجوال استيديو واضافتها للزر مباشرة
لكننا نريد هنا اضافتها برمجيا

قبل البدء ولكي نكون منطقيين فان هذا الدرع يوضع عندما يكون حساب المستخدم فعلا مدير نظام أي Administrator لذلك يتوجب علينا أن نتأكد من ذلك أولا

سنتعامل هنا مع فضاء الأسماء Security.Principal


كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][color=#0000bb]Security[/color][color=#007700].[/color][COLOR=#0000bb]Principal  
[/COLOR][/COLOR]

نستعمل الدالة التالية من أجل التأكد من الحساب الحالي هل هو Admin

كود :
[color=#000000][COLOR=#007700]Private Function [/color][color=#0000bb]IsAdmin[/color][color=#007700]() As [/color][COLOR=#0000bb]Boolean
     Dim p [/COLOR][color=#007700]As New [/color][color=#0000bb]WindowsPrincipal[/color][color=#007700]([/color][color=#0000bb]WindowsIdentity[/color][color=#007700].[/color][color=#0000bb]GetCurrent[/color][COLOR=#007700])
     Return [/COLOR][color=#0000bb]p[/color][color=#007700].[/color][color=#0000bb]IsInRole[/color][color=#007700]([/color][color=#0000bb]WindowsBuiltInRole[/color][color=#007700].[/color][color=#0000bb]Administrator[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Function  
[/COLOR][/COLOR]

بعدها نستعمل دالة الAPI المشهورة SendMessage من أجل رسم الدرع على الزر

كود :
[color=#000000][COLOR=#007700]<[/color][color=#0000bb]DllImport[/color][color=#007700]([/color][color=#dd0000]"user32"[/color][color=#007700])> [/color][COLOR=#0000bb]_
[/COLOR][color=#007700]Public [/color][color=#0000bb]Shared [/color][color=#007700]Function [/color][color=#0000bb]SendMessage[/color][color=#007700]([/color][color=#0000bb]ByVal hWnd [/color][color=#007700]As [/color][color=#0000bb]IntPtr[/color][color=#007700], [/color][color=#0000bb]ByVal msg [/color][color=#007700]As [/color][color=#0000bb]UInt32[/color][color=#007700], [/color][COLOR=#0000bb]_
         ByVal wParam [/COLOR][color=#007700]As [/color][color=#0000bb]UInt32[/color][color=#007700], [/color][color=#0000bb]ByVal lParam [/color][color=#007700]As [/color][color=#0000bb]UInt32[/color][color=#007700]) As [/color][COLOR=#0000bb]UInt32
End [/COLOR][COLOR=#007700]Function  
[/COLOR][/COLOR]

ثم نطبق الكود


كود :
[color=#000000][COLOR=#007700]If [/color][color=#0000bb]IsAdmin[/color][color=#007700]() [/color][COLOR=#0000bb]Then
  Button1[/COLOR][color=#007700].[/color][color=#0000bb]FlatStyle [/color][color=#007700]= [/color][color=#0000bb]FlatStyle[/color][color=#007700].[/color][COLOR=#0000bb]System
  SendMessage[/COLOR][color=#007700]([/color][color=#0000bb]Button1[/color][color=#007700].[/color][color=#0000bb]Handle[/color][color=#007700], &[/color][color=#0000bb]H160C[/color][color=#007700], [/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]UInt32[/color][color=#007700].[/color][color=#0000bb]MaxValue[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If  
[/COLOR][/COLOR]


}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 20 9,014 26-09-16, 08:12 AM
آخر رد: abumuhannadzym
  شرح اضافة ملف فيديو للريسورس + تشغيله عن طريق البوتون--شرح مصور RaggiTech 0 561 05-10-12, 10:27 AM
آخر رد: RaggiTech
  مراقبة نظام الملفات FileSystemWatcher RaggiTech 1 533 05-10-12, 01:39 AM
آخر رد: RaggiTech
  ملاحظة سريعة - تمكين برنامجك من استخدام صلاحيات مدير على فيستا RaggiTech 0 420 05-10-12, 01:31 AM
آخر رد: RaggiTech
  الحلقة العاشرة من السلسلة 167 - اضافة المخطط (Chart) الى التقرير RaggiTech 0 470 02-10-12, 04:31 PM
آخر رد: RaggiTech
  اضافة Check Box في Dgv Header Cell RaggiTech 0 509 02-10-12, 02:00 AM
آخر رد: RaggiTech
  اضافة Button in Grid مع امكانية عمل Enabel True-False RaggiTech 0 304 02-10-12, 01:55 AM
آخر رد: RaggiTech
  أحداث التطبيق Application Events RaggiTech 0 315 01-10-12, 10:19 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم