6

Sto usando Windows 8.1, Visual Studio 2013 e ho un progetto C++ che viene eseguito in 15 minuti. Ma il problema è che Windows si mette a dormire mentre il mio è ancora in fase di debug.Windows dorme durante l'esecuzione di un programma C++ Visual Studio lungo

So che si è verificato perché il tempo di attesa sleep è stato superato durante l'esecuzione del programma (debug) e posso facilmente arrestarlo aumentando il tempo di attesa del sonno o impostando le impostazioni su "mai" sleep nel Pannello di controllo di Windows Impostazioni di alimentazione.

Ma io voglio una soluzione di Visual Studio o di programmazione per questo. Voglio che il mio computer non si addormenti durante l'esecuzione (debug) di un programma.

+0

chiamata SetThreadExecutionState() periodicamente. – user1

+0

Refer http://www.codeguru.com/columns/vb/preventing-your-monitor-from-going-to-sleep-with-visual-studio-2012.htm – user1

+0

Ma io sono solo curioso, perché non semplicemente cambi le impostazioni di sistema e previeni il sonno? – user1

risposta

2

al punto di ingresso programma di modificare le impostazioni, ripristinare le impostazioni alla fine, quando finiture sessione di debug.

Prendete questo esempio ....

#include <cstdlib> 
//include windows.h 

using namespace std; 

void KeepMonitorActive() { 
    // Enable away mode and prevent the sleep idle time-out. 
    SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED); 
} 

void RestoreMonitorSettings() { 
    // Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally. 
    SetThreadExecutionState(ES_CONTINUOUS); 
} 

int main() 
{ 
    //Add these 2 lines at the entry point in your program 
    KeepMonitorActive(); 
    atexit(RestoreMonitorSettings); 

    //... 
} 
+0

Grazie. Risponderei con i risultati ... –

+1

Questa è la soluzione C++ 11, ma non avresti problemi nell'esecuzione di questo esempio poiché stai già utilizzando VS 2013. VS 2013 supporta std :: thread – user1

+0

http: // coliru. stacked-crooked.com/a/082496f91f112c2d – user1

5

C'è SetThreadExecutionState funzione in Windows

+1

Vedere la risposta qui sotto , Come viene utilizzato SetThreadExecutionState. – user1