0

私の質問は、以前の質問「SetSuspendState() API never return in Win8」の続きです。

Win8/Win8.1 m/c で VC++ コードを実行しています。

私の目的は、システムをスリープ状態にし、手動で「マウスをクリックまたはキーボードを押す」ことなく、自動的にシステムをスリープ状態から戻すことです。しかし、「システムをスリープ状態にするため、もちろんシステムをスリープ状態に戻さない」ことはできません。以下の呼び出し SetSuspendState() を使用すると、システムはスリープではなく常に休止状態になります。

クイック リファレンス用にコード スニペットを再度貼り付けます::

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(FALSE, FALSE, FALSE)

誰でも親切にこの問題を解決するのを手伝ってくれますか & どうすればシステムを "プログラム的にスリープ状態にし、手動の "マウス クリックまたはキーボード ヒット" なしで自動的にスリープ状態から復帰できますか?

4

1 に答える 1