0

私の問題文を説明しましょう:

私のVC ++プロジェクトでは、システム(Windows 8)をプログラムでスリープ状態にして再開するロジックを挿入したいと考えています。

私はこのようにやっています(コードスニペットのコピー)::

int wait = 100;
LARGE_INTEGER WaitTime;
    WaitTime.QuadPart = wait;
    WaitTime.QuadPart *= -10000000;

HANDLE hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
        if(0 == SetWaitableTimer(hTimer, &WaitTime, 0, NULL, NULL, TRUE))
        {
            res = false;
            return res;
        }
        if(0 == SetSuspendState(FALSE, FALSE, FALSE))
        {
            res = false;
            return res;
        }

システムがスリープ状態になります (モニターがオフになります)。
ここでは、SetSuspendState() API 呼び出し後にスリープ状態から再開したいと考えています。しかし、SetSuspendState() 呼び出しがまったく返されていないことがわかります。コントロールは、この SetSuspendState() 呼び出し自体で攻撃され、戻りません

ただし、システムを強制的に電源に戻すと、システムは元に戻りますが、関数「SetSuspendState()」はコードに戻りません。

SetSuspendState() が返されない理由と、この問題を解決する方法を理解するのを手伝ってください。前もって感謝します。

PS: このスリープ状態を実現するために、VS リモート デバッガー メカニズムを使用しています。

4

1 に答える 1