it-swarm.asia

كيفية طلب أذونات المسؤول عند بدء تشغيل البرنامج؟

أحتاج إلى تشغيل برنامجي كمسؤول على نظام التشغيل Windows Vista (إذا قام شخص ما بتشغيله دون أذونات إدارية ، فسيتعطل).

عند بدء تشغيل برنامج آخر ، رأيت "مطالبة" بواسطة النظام مثل "سيتم تشغيل هذا البرنامج كمسؤول. هل تريد المتابعة؟" عندما كان التطبيق يحاول الحصول على امتيازات إدارية.

كيف أطلب امتيازات إدارية عند تشغيل تطبيق c # على نظام التشغيل Windows Vista؟

69
Arsen Zahray

أضف ما يلي إلى ملف البيان الخاص بك:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

يمكنك أيضًا استخدام highestAvailable للمستوى.

انظر هنا حول تضمين ملفات البيان:

http://msdn.Microsoft.com/en-us/library/bb756929.aspx

ملاحظة: إذا لم يكن لديك ملف بيان ، يمكنك بسهولة إضافة ملف جديد:

في Visual Studio ، انقر بزر الماوس الأيمن فوق المشروع -> إضافة عنصر -> اختر ملف بيان التطبيق (ضمن عام للعناصر Visual C #)

سيكون للملف المضاف بالفعل الجزء أعلاه ، فقط قم بتغيير المستوى إلى requireAdministrator من asInvoker

122
manojlds

ضع ملف 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>
12
Steve Danner

تحتاج إلى استخدام الرمز المميز requestedExecutionLevel في بيان:

http://www.developerfusion.com/code/7987/making-a-net-app-run-on-Vista-with-administrator-priviledges/

1
Polynomial

بالنسبة لبرنامج F # Visual Studio 2013 ، بما في ذلك ملف البيان الذي يطلب رفع المسؤول باستخدام علامة /win32manifest الخاصة ببرنامج التحويل البرمجي لـ FSharp كما يلي: لذلك ، بالنظر إلى إخراج المشروع المسمى "App.Exe"

  1. قم بإنشاء ملف بالمحتوى التالي (للراحة ، يمكنك إضافة الملف إلى المشروع. تأكد من أن Build Action هو None' andCopy to Output ...isDo 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>
    
  2. قم بتحرير حقل إدخال Other flags: الخاص بلوحة إنشاء المشروع لتضمين ما يلي: /win32manifest:<ApplicationManifestFile>. على سبيل المثال ، في هذه الحالة ، /win32manifest:App.Exe.manifest.

0
George