2009-10-17 124 views
0

我試圖讓系統保持開啓狀態,同時允許顯示屏關閉,以便在系統無人值守時完成下載。要實現這個功能,我需要:爲什麼SetThreadExecutionState(ES_SYSTEM_REQUIRED)會阻止顯示器關閉電源?

SetThreadExecutionState(ES_SYSTEM_REQUIRED); 

每當我從下載中獲取數據。但是,這似乎也可以防止顯示器掉電(顯示屏按照其配置的調光定時器變暗,但從未完全關閉)。根據the MSDN entry,這隻會發生,如果我也通過ES_DISPLAY_REQUIRED - 爲什麼它被阻止呢?

請注意,當我停止呼叫SetThreadExecutionState時,顯示屏不會再次開機;我必須終止程序以允許顯示屏關閉。但是,如果使用ES_CONTINUOUS進行調用,它不應只有持續性效果嗎?

我使用Windows 7,如果它很重要。我無法測試的其他版本在這個時候......

回答

1

如果你打電話不ES_CONTINUOUS這個功能,它不會繼續計數系統和監視器的空閒計時器。所以您必須通過ES_CONTINUOUS組合傳遞參數。例如,您可以撥打 SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_CONTINUOUS);代替 SetThreadExecutionState(ES_SYSTEM_REQUIRED);

+0

嗨,這不是我原來的問題 - 但問題的前提是有缺陷的,所以我會請求mods刪除問題。 – bdonlan 2010-07-31 23:51:47

相關問題