2009-04-25 6 views
8

Come posso farlo in un programma C#? Sono abbastanza sicuro che dovrebbe essere possibile, dal momento che vari programmi multimediali, ad esempio, fanno in modo che il computer non vada in stand-by mentre guarda un film, ecc.C#: Come impedire a un laptop di andare in stand-by

Quindi, se per esempio creo un piano e applicazione WinForm di base, cosa devo fare per evitare che un laptop vada in stand-by finché questa applicazione è in esecuzione?

risposta

11

Penso che dovrete P/Invoke. Ma non aver paura ... è abbastanza facile.

SetThreadExecutionState è tuo amico. It's available nello PInvoke project, disponibile anche su NuGet.

+0

Sembra perfetto! Non posso testarlo fino a stasera o domani, ma sembra giusto :) – Svish

+0

Devo impostare lo stato indietro quando termina l'applicazione? Oppure, poiché si tratta di una cosa per thread/applicazione, tornerà automaticamente alla normalità? – Svish

+0

A meno che la documentazione indichi che è necessario tornare indietro manualmente, direi che probabilmente non è necessario ripristinarlo se intendi che duri la vita della tua app. –