طلب امتيازات المسؤول أثناء وقت التشغيل
سؤال
كيف أطلب امتيازات المسؤول أثناء وقت التشغيل حتى يتم منح المستخدم المطالبة للسماح لها أو عدم السماح بها؟
المحلول
هذه المعلومات مكتوبة في بيان ملف exe. يجب عليك استخدام requestedExecutionLevel
الحقل (ولكن لست متأكدًا من ذلك - حاول إعداده إليه highestAvailable
ومعرفة ما إذا كان يفعل ما تحتاجه). انظر على سبيل المثال هنا لمزيد من المعلومات (مقالة أقدم إلى حد ما ولكنها لا تزال صالحة): http://blogs.msdn.com/b/cjacks/archive/2006/09/08/exploring-manifests-bart-2-default-namespaces--uac-manifests-inwindows-vista.aspx
هناك أدوات في Visual Studio تتيح لك تضمين بيانك الخاص أو حتى تحريره. أيضا هناك أداة مكتوبة في بيرل ( http://metacpan.org/pod/win32::xe::Manifest ).
تحرير: انظر هذا المقال لمزيد من المعلومات: http://www.codeproject.com/articles/66259/requesting-admin-approval-at-application-start.aspx
نصائح أخرى
إذا كنت تريد ذلك استجابةً لزر ما (على سبيل المثال ، مثل "إظهار عمليات لجميع المستخدمين في مدير المهام) ، فيجب عليك إعادة تشغيل تطبيقك باستخدام الطريقة التالية
ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);