सिस्टम को निष्क्रिय मोड में प्रवेश करने से रोकने के लिए आप SetThreadExecutionState
फ़ंक्शन का उपयोग करने का प्रयास कर सकते हैं। यह फ़ंक्शन सिस्टम को सूचित करता है कि एप्लिकेशन उपयोग में है और आपको थ्रेड की निष्पादन आवश्यकताओं को निर्दिष्ट करने की अनुमति देता है। उपयोग इस तरह हो सकता है, लेकिन मुझे यकीन है कि अगर यह भी प्रभावित करता है डिस्क शक्ति नीचे टाइमर नहीं कर रहा हूँ:
type
EXECUTION_STATE = DWORD;
const
ES_SYSTEM_REQUIRED = $00000001;
ES_DISPLAY_REQUIRED = $00000002;
ES_USER_PRESENT = $00000004;
ES_AWAYMODE_REQUIRED = $00000040;
ES_CONTINUOUS = $80000000;
function SetThreadExecutionState(esFlags: EXECUTION_STATE): EXECUTION_STATE;
stdcall; external 'kernel32.dll' name 'SetThreadExecutionState';
procedure TForm1.Button1Click(Sender: TObject);
begin
if SetThreadExecutionState(ES_CONTINUOUS or ES_SYSTEM_REQUIRED or
ES_AWAYMODE_REQUIRED) <> 0 then
try
// execute your long running task here
finally
SetThreadExecutionState(ES_CONTINUOUS);
end;
end;
या वहां भी उपलब्ध है कार्यों PowerCreateRequest
, PowerSetRequest
और PowerClearRequest
विंडोज 7 के लिए बनाया गया के नए सेट, लेकिन दस्तावेज भ्रमित है और मुझे इस समय उनके उपयोग का कोई उदाहरण नहीं मिला है।
या आप PowerWriteACValueIndex
या PowerWriteDCValueIndex
द्वारा पावर सेटिंग्स को GUID_DISK_SUBGROUP
पावर सेटिंग्स के उपसमूह के साथ संशोधित कर सकते हैं।
मैन्युअल रूप से नियंत्रण कक्ष से एक अलग पावर योजना सेट करें। मैं एक प्रोग्राम हटा दूंगा जो मेरी पीठ के पीछे बिजली योजना बदलता है। – kludg
कंप्यूटर उपयोग में होने पर डिस्क को कम करता है? यह वास्तव में मेरे लिए सही नहीं है। क्या आपको यकीन है? –
संक्षेप में, विंडोज सक्रिय डिस्क लिखने के दौरान डिस्क को पावर नहीं करेंगे, लेकिन ओपी उचित फ़ाइल-रीड या फ़ाइल-लेखन नहीं कर रहा है, और इसलिए विंडोज डिस्क या पूरे कंप्यूटर को निलंबित कर सकता है। ओपी समस्या को थोड़ा गलत बता सकता है। –