لماذا يطلب برنامجي الإذن للتشغيل على نظام التشغيل Vista؟

StackOverflow https://stackoverflow.com/questions/95525

  •  01-07-2019
  •  | 
  •  

سؤال

لقد قمت للتو بإنشاء برنامج VS C++ 6.0 باستخدام VS 2008.عندما أحاول تشغيل التطبيق أو تصحيح أخطائه، يطلب نظام التشغيل Vista الإذن.ما هو الأمر المتعلق بكيفية بناء البرنامج الذي يسبب هذا؟يتم إنشاء البرنامج وتشغيله من مجلد فرعي C:\Dev

هذا الرد لا معنى له بالنسبة لي كحل للمشكلة.

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

المحلول

الاحتمال 1:

تم وضع علامة على برنامجك بأنه يحتاج إلى حقوق المسؤول في بيانه

الاحتمال 2:

يُسمى برنامجك setup.exe أو install.exe - وتؤدي أسماء البرامج هذه دائمًا إلى المطالبة بحقوق المسؤول

للحصول على شرح مفصل لتلك الاحتمالات وغيرها لماذا ترى هذا الاختيار التعرف على مقالة Technet للتحكم في حساب المستخدم

نصائح أخرى

كان MVP يتحدث عن تشغيل التعليمات البرمجية والمشروع من مجلد المستخدم الخاص بك على سبيل المثال c:\users\yourname\appdata أو أي شيء ضمن هذا المسار.

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

شكرا سوما.ردك هو الأفضل حتى الآن وساعدني في التوصل إلى حل.لقد قررت أن السبب يفسره اقتراحك الأول.إعادة تسمية الملف إلى شيء لا يحتوي على كلمة "الإعداد" لم يساعد.

تبين أنني كنت مخطئا.لقد قمت بتثبيت الإصدارين VS 2005 وVS 2008، وعندما حاولت فتح ملف .dsw القديم، تم إطلاقه وعرض ترقية المشروع في عام 2005.يبدو أن عام 2005 أنشأ بيانًا يحتوي على سطر واحد فقط يحمل علامة "التجميع".بمجرد أن قمت بترقية المشروع باستخدام VS 2008، تم إنشاء ملف بيان أكثر شمولاً.لقد تأكدت من تضمين البيان في برنامجي عن طريق التحقق من إعداد Manifest Tool...الإدخال والإخراج...تضمين البيان.يتضمن هذا البيان الجديد البيانات التالية:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>   

إذا لم تكن مسؤولاً، فمن المحتمل أنك لا تملك الإذن بتنفيذ البرامج في C:\Dev.

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