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

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

سؤال

لدي عملية طحن عدد مطول تستفيد من Abit من عرض OpenGL خارج الشاشة. كل ذلك يعمل بشكل جيد ولكن عندما أتركه للعمل بمفرده بينما أذهب ساندويتشا، سأجد عادة أنه تحطمت بينما كنت بعيدا.
كنت قادرا على تحديد أن الحادث يحدث قريبا جدا من لحظة الكمبيوتر المحمول الذي أستخدمه يقرر إيقاف تشغيل الشاشة للحفاظ على الطاقة. تعطل نفسه جيدا داخل DLLs NVIDIA، لذلك لا يوجد أمل في معرفة ما يحدث.

الحل الواضح هو إيقاف تشغيل ميزة إدارة الطاقة التي تحول الشاشة وبطاقة الفيديو، لكنني أبحث عن شيء أكثر سهولة الاستخدام. هل هناك طريقة للقيام بذلك برمجيا؟
أعلم أن هناك تطبيق Seti @ المنزل الذي يستفيد من معالجة GPU. كيف يحتفظ ببطاقة الفيديو من الذهاب إلى النوم؟

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

المحلول

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

نصائح أخرى

لصالح مستخدمي Linux الذين يواجهون مشكلة مماثلة، اعتقدت أنني سأضيف ذلك، يمكنك الحصول على إخطارات مماثلة وتمنع تغييرات حالة الطاقة باستخدام DBUS API.. وبعد برنامج نصي مثال في Python، مأخوذة من الرابط، إلى تمنع تغيير حالة الطاقة:

#!/usr/bin/python
import dbus
import time
bus = dbus.Bus(dbus.Bus.TYPE_SESSION)
devobj = bus.get_object('org.freedesktop.PowerManagement', 
                        '/org/freedesktop/PowerManagement')
dev = dbus.Interface (devobj, "org.freedesktop.PowerManagement.Inhibit")
cookie = dev.Inhibit('Nautilus', 'Copying files from /media/SANVOL')
time.sleep(10)
dev.UnInhibit(cookie)

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

وتسمى الوظيفة SetThreadExecutionState (MSDN.). إنه يعمل بالنسبة لي، باستخدام الأعلام ES_SYSTEM_REQUIRED و ES_CONTINUOUS.

ملاحظة، ومع ذلك، فإن استخدام هذه الوظيفة لا يمنع شاشة التوقف من التشغيل، والذي قد يتداخل مع تطبيق OpenGL الخاص بك إذا كان شاشة التوقف أيضا يستخدم OpenGL (Oder Direct3D).

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