فى البداية نقوم بتحريف الدالة 58000/655368 المتواجدة في المكتبة ال.5832ل) حيت بقوم الإجراء 0 800512107088840
بضبط الخلسبة عا/458واع الخاصة بالزر إلى (0 5/98 ثم يستخدم الدالة عع558ع000/4ع5 لإرسال الرسلة 8600_515141510 إلى الزر
ولا توف نا مايكروسوفت حاليا طزيقة لإضافة الدرع لتحكمات أخرئ غير زر الأوامر فإن أردث إضناقه إلى تحكم آخر ضتقوم بذلك
رفع صلاحيات البرامج
يمكن للمستخدم رقع المستوى الذي يتم تنفيذ التطبيق ضمته بواسطة اختيار الأمر 80011015828402 85 0نم من القائمة التى
تظهز لك عند الضغط يزر الفرة اليميني على الملف التنفيذي للتطبدق فبقوم النظام بإظهاز صندوق حوار 086 الخاص وبعد أن يقوم
المستخدم بإخل كلمة سر المدير يثم تنفيذ البرنامج باستخدام الصلاحيات المرتفحة وهذه الطريغة بسبطة ولا تتطلب تدخلا منك كميرمج
ولكنها تتطلب من المستخدم الغبام بخطوة إضافبة ولهذا قد لا تكون هذه الفكرة هى الحل الأفضل دوم
ويمكننا جمل تطبيضنا يبدأ تطبيق معين باستخدام سنلاحيات مرتفعة بطريقة تشابه تلك الطريقة الني يستخدمها المستخدم فهو بيدا
تشغيل التطبيق طالبا من اأنظام تشغيله بصلاحيات منير حيت يمكن استخدام كود بيه بالنالي لتشغيل تطبيق آخر بصلاحيات مرتفعة مع أن
00 انعلا عم 8م 0100
القيمة كوونم لكى ببين للنظام أن التطبيق يجب أن يتم تشغيله كمتير كما يضبط اسم البرنامج ومحددات بده التشغيل الخاسة به.
ال ل رقع قشي
بنفسه وذلك باستخدام 008016854 مضمنة داخل الملف التنفيذي للتطبيق ولإنشلئها انقر نقرا مزدوجا على معز060 تراط في (10اا50
+00106ع وفي صفحة (و1طعثا80م انقر على الزر 58541085 86لا بعالا الذي يقوم بفتح الملف 0.018012854م2 حبت بظهر الكود
<" ععدة ما -ممكن 1/1015 200/ون01 ل ممصا // 0 2510-27 :600
مممتعمة لمعلا عرلا ا
عياع عمقذوع 12021 لمعم عمتمعمم لكا ولومفصلا عط عوصفراء م عمق تفلا ع1
. ع مم 1 امتهم دعي اشع معدو عع عط عع اعة معطا لالخ طا عة ص
جلا 92001 /ه
<م م1 قناع له
ولجعل التطبيق يطلب من عه/ل رقع صاتحياته غير قيمة السطر [6/:ع5680011001)كعن:وع» إلى 28107 بق بأناوع
والآن عندما تقوم يعمل ع11م 6000 للتطبيق بقوم فبجول ستوديو بتعليم التطبيق بأنه بحاجة إلى صلاحيات مدير فخدما بقوم المستخدم أو أي
رقع تلك الصلاحبات
الفواعد الأساسية لبرمجة عه تتطلب استخدام الحد الأدنى من الصلاحيات لتتفيذ العمل المراد ويجب على التطبيق استخضام
صلاحيات مستخدم عادي عندما يكون ذلك ممكنا وإن كان عليه تنفيذ مهمة تتطلب صلاحيات أكبر فيجب عليه تنفيذ تطبيق آخر متفصل بمثلك
وقد ورد فى هذه المقلة تلذئة طرق لبدء البرنامج بسلاحبات مرتفعة: الأولى هي الطلب من المستخدم فعل ذلك وذلك من خلال
النقر بزر الغأرة اليميتي على التطبيق واختيار الأمر +8.0/00101542840 ك8 800 وهذه ليست بالطريقة الملائمة بشكل عام ولكنها تبقى مقولة
إن كان المستخدم سيشغل ذلك التطبيق مرات نادرة والتانية هى جعل التطبيق بيد التطبيق الآخر بصلاحيات مرتفعة وهذه طريقة أفضل من
الأولى ولكنه مازال بالإمكان تشغيل التطبيق بدون الصلاحيات التى يحتاجها والثالئة هي تضمين 002016858 ضمن التطبيق المستدعى لجعله
تمكين برنامجك من استخدام صلاحيات مدير على فيستا
اتمكين برتامجك من العمل بصلاحبات مدير شل «يئة
التطوير واخثر الأمرم40 8000101508 85 800 -
تظهر لك استبدل السطر
التطوير دوما بصلاحيات منبر- انفر نزر ار
ابلسطر
أن8 وديئة التطوير مازالت تحمل ضمن مستوى 8000101548403 كما تأكد يأك تستخدم
ت مدير عندما تقوم بعمل برنامج ال م5640 أيضا
كيف نقوم بجعل أحد الأزرار في برنامجنا ينفذ أوامر تتطلب صلاحيات مدير في ويندوز فيستا
ناج فى بض الأحبان للقام بأعمال تتطلب سلاحيات خلسة فى ويندوز فيسنا وهنا ستواجه متعامن قل عهنا الخاص
بويندوز فسا ولكى يتمكن برنامجنا من تنفيذ هذه المهمة بحب علينا تنفيذ ذلك الكود بمستوى صلاحيات مدير 000101512840:2م حيبت سنقوم
فى البداية بتحريف فئة تتحامل مع نظام الأمان في ويندوز فيسنا مستخدمين الفئة /10/100010/510801(8 للتحرف على مستخدم ويندوز الذي
تحمل عليه والفئة ا2م1/0/00008/581101 للتحرف على المجموعات التي ينتسب إليها ذلك المستخدم ثم نتحفق من أنه يعمل بصلاحيات مدير
كما في الإجراء
فلن لم يكن المستخدم يعمل بصلاحيات مير هنا نعيد بدء العملية الحالية 0606855 6066804 8891206 رافمين مستوى صلاحيات المستخدم
إلى مستوى مدير كما في الإجراء
عيض ج عع 211 10565. 1050 قاع
"فقصوء" ج طلا م كدت اعقطع
ومتطعمم مه بلعلا عمق ١16 معمامعع
١ عمق ممنعةمنلوظم
بقى لدينا إضافة أبقونة الدرع الخلسة بالأزرار التي تستخدم صلاحيات مدير إلى زر الأوامر المطلوب حيت بثم ذلك باستخدام الدالة.
©5©000165526 الموجودة فى المكتنة |(32.0معون الثى ثقوم بإرسل الرسلة 8614_5875141810 إلى الزر المطلوب كما فى الإجراء
طدة فدع
وسيصبح الكود الكامل للفثة الي ستستخدمها لإجراء عملية تمكين الزر من تنفيد أعمال تتطلب صلاحبات مدير كما بلي
ممعورة ععاعمرس
6 > عه وال .مم وغ علا ء مذ وغ 0517 .عه عمم معد بط معماع2
ملع عضو
فم عد سدم
مدال عماج عع فصل معلا - الدمتعماعة صوومداة عم م سذط
<لإعمسسمعة /'
ممععيط م دم دمع لمعنه م 24 /'
م75 5. 2165712 2 علو 5م21 ط
علمدع ممق عع «مطوع ءا فتملسفة معدم دقع معام المعععي عط لاعواوعة /'
"ققضناء" 2 طععلاء
ومستطعمد مه بفعللععفقء 15
ال قمع
)١ عنبة دمن دمنلوهم
دعنا نجرب معا الفئة لني قمنا بإنشالها لفقو
سوم بالتجربة على كود مغنطف من برنامج قديم لى وهو بزاقب خدمة النظام الخاسة ب
طلا
وفق 204
:560/8 (50 ويتحكم بها ويما أن كود بدء أو
إضافة مرجع إلى 54610.561/1680106855/ر5 وإلى الاستيرادات الثالية في بداية الملف أيضا
- معلا فم صم مض قلو5
(اللوقاعقة يع ععمسناط
قمع
مط مع فقا عع
ل قمع
طك قمع
ذلك الصلاحيات نعيد بدء الحملية ووع6 0م8 الحالية رافعين الصلاحيات للمستوى المطلوب باستخدام الدالة 88548:4516/2480 كما في الكود
قلع
( 8127660 عق فط العامة 5ف فدلا
وعملية إضافة أيقونة الدرع إلى زر الأوامر تتم باستخدام الكود
(" 1270255 11550335" ) «علله عدم عه م5 وفع م لطع م5 . ع و5
ا«مدعاو م2 فم أ عاق
د قمع
قمع
عقذع
١ المع عة» عل قاعة فع2 . لعالأعوءء قو هالا
قمع
سؤال
هل من الممكن شرح استخدام هذه الطريقة مع 368 10/100085
الجواب
استعراض 1186
بشكل عام لا يمكن للبرنامج تفية أعمال تتطلب صلاحبات لا يمتلكها المستخدم فإن لم يمتلك ذلك المستخدم الصلاحيات الكافية
لحتف ملفات في مجلد الويندوز فلا يمكن للبرنامج المشثل من خخله أن يحتف ذلك الملعات أيضا ومع ذلك يمكن للمستخدم فنعيذ أعمال من
المعرض أنه ممنوع منهاا والمطورون يعلمون منذ مدة طويلة أن التطبيق يجب أن يمتلك بحض الصلاحيات لكي يتمكن من إتمام العمل فلن
كان التطبيق يتطلب العديد من الصلاحيات فوحدهم المستخدمون النين يمتلكون تلك الصلاحيات يمكنهم تشغيل ذلك البرنامج ولسوء الح
فإن العديد من التطديقات الني تقوم بأعمل فوية تحتاج إلى إنشاء أو حذف ملفات فى مجلد الوندوز أو الوصول إلى مناطق متعلفة بالنظام أو
بعتي أنه على العديد من المستخدمين امتلاك صلاحيات مدير نظام حتى يستطيعوا تشغيل ذلك البرامج.
والتحامل مع صلاحيات بهذا المستوى بي مع أخطار إضافية فإن أساء التطبيق التصرف ف يتسبب باتهبار النظام حتى لو كان
التطبيق ذات نفسه يعمل بصورة طبيعية فقد بغوم المستخدم بعمل شئ كارتي عن طريق الخطأً عندما يكون قد دخل بصلاحيات مدير فد يفوم
يحذف ملفات هامة يصبح معها من المستضيل امتعادة النظام ويكون الحل الأمثل في هذه الحالة هو السماح للتطبيق برقع مستوى الصلاحبات
التى يستخدمها بشكل مؤقت أثناء تأديئه لتلك الوظائف القوية فإن اخطأ التطبيق عند تشغيله لجزئية معينة من الكود فلن يكون لديه الصلاحبات
الكافية لعمل ضرر كبر ولن يكون للمستخدم صلاحيات مدير بشكل دائم وبهذا تكون قد ظلنا من احتمال الحوادت المدمرة فى النظام.
فى نسخ الويندوز السابقة لفيسنا عندما تقوم بالدخول كمستخدم يمتلك صلاحيات مدير عندها ستتمكن من القبام يعمل أي شئ تقريبا
ولكن في ويندوز فيستا فأن ال عه يتصرف بطريقة مختلفة قليلا فعندما تدخل كمدير يكون دخولك عبارة عن فين الأول عبارة عن
مستخدم عادي ذو صلاحيات محدودة والثانى مدير نظام يمتلك كافة الصلاحيات فى البداية يكون عملك كمستخدم عادي حيت يتم استخدام
الشق الثاني عند الحاجة فط فتندما تريد القيام بعملية تحتاج إلى صلاحيات إضافية فال ©0186 يظهر لك صندوق حوار يسك الموافقة فإن
م عاذي كانية وإن كنث قد دخلت باسم مستخم علي لا يمالك ستلاحيات مدير فمازال بإمكتك تنفيذ أمر بطات ذلك الستاادياث
صلاحيات مدير بشكل مؤقت حتى ينتهي تنفيذ ذلك العمل. ويكون الفرق دين الحالتين بسيطا فعندما تدخل كمدير فإن ال 86ل يسك موافقك
على الحمل بالصلاحيات المرتفحة وإن دخات كمستخم آخر فإن العمل يطلب منك إدخال كلمة السر الخاسة بالمدير
التصميم من اجل 6م118
بتغيير تلك اللاحبات فإن احتاج التطبيق العمل بصلاحيات مرتفعة صليه أن بحصل على ذلك الصلاحبات عندما بدا وأتجنب إعطاه
التطبيق صلاحبات أكثر من اللازم يجب عليك تضيم كودك إلى أجزاء بحسب احتياجه لئلك الصلاحيات فالإرنامج الرئيسي بجب أن بعمل
ابصلاحيات عادية ولاحقا يجب عليه تنفيذ تطبيقات أخرى تعمل بصلاحيات مرتفعة عند الحاجة.
فتلا إن كان لدينا تطبيق يقوم بحفظ اليبائات في قاعدة بباناث 560/2 [50 فهو لا بحتاج لصلاحبات مدير ومع ذلك إن أراد إنشاء
ملف بملخص الحمليات فى مجلد الويندوز - مجاد محمى - فسيحتاج عندها لصلاحيات مدير فيمكنك عندها تضيم التطبيق إلى عدة أجزاء
وعندما يكون بالإمكان بفضل أن تعيد كتابة التطميق أتجنب استخدام صلاحيات مرتفعة فلعديد من البرامج على مديل ا
لمتل تكون
منصبة فى المجلد وع1اع 03087001 وهذا من المجلدات المحمية وبهذا إن احتاج التطبيق إلى تخزين معلومات فى ملف متواجد بنفس المجلد
يكتب ذلك الملف في المجلد الخاص بالمستخدم الحالى. والعمليات الأخرى التي تاج لصلاحيات مرتفعة تتضمن الكثابة إلى المجلدات
المحمية والتحامل بشكل مناشز مع العّاد وتعديل الأقسام المحمية في سجل النظام مثل 641018 0018_ماظ6 4165/10
وتضيم التطبيق إلى أقسام تتطلب صلاحيات مرتفحة وأخرى لا تتطلب تلك الصلاحيات لا يمكن التطبيق من استخدام أفل
الصلاحيات الممكنة فحسب ولكنه ببسط الخسم الأخطر فى كودك ويجطله أسهل للتتفيح تلا يمكننا استخدام كود بيه بلكالى لتنفيذ تطبيق
يتطلب صلاحيات مرتفحة