كيفية استدعاء واجهة برمجة تطبيقات Win32 مع امتيازات مرتفعة على Windows 7

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

  •  30-09-2019
  •  | 
  •  

سؤال

لقد اكتشفنا للتو هذا الرمز الذي يطلق على Win32 SetDateTime تحتاج الوظيفة إلى التشغيل في وضع مرتفع في Windows 7 ، أي حتى عند تسجيل الدخول كمسؤول ، لا يزال يتعين على المرء اختيار تشغيل رمز تاريخ تعيين كمسؤول للمكالمة لتغيير التاريخ.

هل هناك أي شيء يمكنني القيام به في التعليمات البرمجية للاتصال دائمًا بهذه الوظيفة ضمن امتيازات مرتفعة؟

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

المحلول

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

إذا كنت تريد أن تفعل شيئًا كهذا ، فسيتعين عليك تشغيل برنامجك بحقوق مرتفعة. على Vista و Win7 الذي يتطلب منك الركض كخدمة أو مهمة مجدولة. التي تتطلب المسؤول للحصول على تثبيت. يوفر UAC طريقة لكسب حقوق المسؤول للبرامج العادية ، يجب عليك تضمين بيان في البرنامج حتى يتم إخطار المستخدم بامتيازك. google 'quisterMinistrator' ، خذ الضربة الأولى.

نصائح أخرى

يمكنك استخدام مكالمة API Shellexecute لإطلاق عملية تنفيذ مع امتيازات مرتفعة.

ومع ذلك ، إذا تم تمكين UAC (التحكم في الوصول إلى المستخدم) على الجهاز ، فسيظل المستخدم يحصل على موجه UAC يطلب تشغيل الأذونات.

لذلك لا أعتقد أنه يمكنك تجنب المطالبة بإذن الارتفاع ، ولكن على الأقل لا يتعين على المستخدم تشغيل البرنامج يدويًا كمسؤول.

يرجى إعلامي إذا كنت بحاجة إلى مساعدة في كيفية إطلاق قابلة للتنفيذ كمسؤول.

كما قال الآخرون ، تحتاج إلى تفرخ عملية جديدة للحصول على أذونات مرتفعة ، مما سيؤدي إلى حوار UAC.

إذا كان هذا شيء تحتاج إلى تشغيله دون مراقبة ، فيمكنك محاولة التشغيل كخدمة. من شأنه أن يمنحك السياق المرتفع الذي تحتاجه.

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