أحتاج إلى تشغيل برنامجي كمسؤول على نظام التشغيل Windows Vista (إذا قام شخص ما بتشغيله دون أذونات إدارية ، فسيتعطل).
عند بدء تشغيل برنامج آخر ، رأيت "مطالبة" بواسطة النظام مثل "سيتم تشغيل هذا البرنامج كمسؤول. هل تريد المتابعة؟" عندما كان التطبيق يحاول الحصول على امتيازات إدارية.
كيف أطلب امتيازات إدارية عند تشغيل تطبيق c # على نظام التشغيل Windows Vista؟
أضف ما يلي إلى ملف البيان الخاص بك:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
يمكنك أيضًا استخدام highestAvailable
للمستوى.
انظر هنا حول تضمين ملفات البيان:
http://msdn.Microsoft.com/en-us/library/bb756929.aspx
ملاحظة: إذا لم يكن لديك ملف بيان ، يمكنك بسهولة إضافة ملف جديد:
في Visual Studio ، انقر بزر الماوس الأيمن فوق المشروع -> إضافة عنصر -> اختر ملف بيان التطبيق (ضمن عام للعناصر Visual C #)
سيكون للملف المضاف بالفعل الجزء أعلاه ، فقط قم بتغيير المستوى إلى requireAdministrator
من asInvoker
ضع ملف XML هذا في ملف يسمى yourexename.exe.manifest:
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0>
<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable" />
</requestedPrivileges>
</security>
</trustInfo>
</Assembly>
تحتاج إلى استخدام الرمز المميز requestedExecutionLevel
في بيان:
بالنسبة لبرنامج F # Visual Studio 2013 ، بما في ذلك ملف البيان الذي يطلب رفع المسؤول باستخدام علامة /win32manifest
الخاصة ببرنامج التحويل البرمجي لـ FSharp كما يلي: لذلك ، بالنظر إلى إخراج المشروع المسمى "App.Exe"
قم بإنشاء ملف بالمحتوى التالي (للراحة ، يمكنك إضافة الملف إلى المشروع. تأكد من أن Build Action
هو None' and
Copy to Output ...is
Do not copy. By convention such a file is named
App.Exe.manifest`. إذا طلبت uiAccess (واجهة المستخدم) ، يجب تسمية الجمعية بقوة.
<?xml version="1.0" encoding="utf-8" ?>
<asmv1:Assembly manifestVersion="1.0"
xmlns="urn:schemas-Microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-Microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-Microsoft-com:asm.v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="App" />
<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-Microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:Assembly>
قم بتحرير حقل إدخال Other flags:
الخاص بلوحة إنشاء المشروع لتضمين ما يلي: /win32manifest:<ApplicationManifestFile>
. على سبيل المثال ، في هذه الحالة ، /win32manifest:App.Exe.manifest
.