سؤال

هل من الممكن programaticly المدى جمعت بيثون (comiled عبر py2exe) كمسؤول في ويندوز فيستا؟

وبعض مزيد من التوضيح:
كنت قد كتبت البرنامج الذي بتعديل ملف ويندوز المضيفين (C: \ WINDOWS \ SYSTEM32 \ السائقين \ الخ \ المضيفين) في ويندوز فيستا البرنامج سوف يتم تشغيل وسيفشل مع استثناء إلا إذا كنت انقر بالزر الايمن وتشغيل كمسؤول حتى عندما يكون المستخدم لديه امتيازات المسؤول، على عكس XP حيث سيتم تشغيل إذا كان المستخدم لديه حقوق الإدارة، لذلك أنا بحاجة إلى وسيلة للارتقاء إلى الامتيازات الصحيحة programaticly.

هل كانت مفيدة؟

المحلول

هل يعني أنك تريد أن يقوم Windows مطالبة الارتفاع عندما يتم تشغيل البرنامج؟ يتم التحكم بذلك عن طريق إضافة واضح UAC لموارد EXE ل. هذا الدخول بلوق يوضح كيفية إنشاء الظاهر وكيف إلى ترجمة عليه في ملف .RES.

وأنا لا أعرف ما هي التسهيلات py2exe لديها لتضمين مخصص .RES الملفات، لذلك قد تحتاج إلى استخدام أداة MT.EXE من SDK منصة لتضمين واضح في البرنامج. MT.EXE لا يحتاج ملفات .RES. فإنه يمكن دمج ملف ملفات .manifest مباشرة.

نصائح أخرى

وبعد أمثلة من Python2x\Lib\site-packages\py2exe\samples\user_access_control فقط إضافة uac_info="requireAdministrator" لتعزية أو نوافذ ديكت:

windows = [{
    'script': "admin.py",
    'uac_info': "requireAdministrator",
},]

ومتابعة تعليق روجر Lipscombe، ولقد استعملت ملف البيان في py2exe دون أي معرفة حقيقية ما كنت أفعله. لذلك هذا <م> قد العمل:

# in setup.py
# manifest copied from http://blogs.msdn.com/shawnfa/archive/2006/04/06/568563.aspx
manifest = '''
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
       <asmv3:trustInfo xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
         <asmv3:security>
           <asmv3:requestedPrivileges>
             <asmv3:requestedExecutionLevel
               level="asInvoker"
               uiAccess="false" />
           </asmv3:requestedPrivileges>
         </asmv3:security>
       </asmv3:trustInfo>
     </assembly>
'''

setup(name='MyApp',
      #...
      windows=[ { #...
                  'other_resources':[(24, 1, manifest)],
                 }]
     )

وقد تحتاج إلى القيام ببعض تافه على الرغم من ..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top