كيفية منع النظام من إيقاف التشغيل أو إعادة التشغيل في خدمة Win32؟

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

سؤال

أريد منع المستخدمين من إيقاف التشغيل أو إعادة تشغيل النظام. يعمل طلبي كخدمة Win32 الأصلية (مكتوبة بواسطة C ++) وتحت حساب Localsystem.

سمعت عن wm_querendentsion المنحل: إنشاء نافذة مخفية واستسلام WM_QUERYDANDENS لمنع إيقاف التشغيل.

ولكن هذا الحل ليس نظيفا حقا ولدي أيضا إنشاء نافذة واحدة لكل سطح المكتب. لذلك لا بد لي من تعداد أجهزة الكمبيوتر المكتبية وأهم أيضا عندما تم إنشاؤه سطح المكتب / مصابا. كل هذه تجعل الوضع سيئ!

هل هناك أي طريقة للكشف عن إيقاف التشغيل / إعادة التشغيل ومنع إيقاف تشغيل النظام / إعادة التشغيل؟

(من المهم أن يكون الحدث هو إيقاف التشغيل أو إعادة التشغيل، يجب إلغاء كلاهما!)

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

المحلول

لا يمكنك ذلك.

لأن السماح للبرامج لمنع إيقاف التشغيل / إعادة التشغيل سيكون إلى حد ما مدى ضعف الأمن، فلا تفكر؟

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

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

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