Pandora Pocket

IT系と日常系の備忘録。三日坊主。

前回こんなアプリを作ったわけなんですが、

実際に使いたかったSurface Pro3でこのアプリを使ってディスプレイの電源を切ると、ディスプレイのみならず本体自体がスリープモードに入ってしまい、意味をなさないことが判明しました。

原因

これはWindowsの機能であるInstantGo(旧Connected Standby)によるもの。
ディスプレイを閉じた場合や電源ボタンを押して画面を消した状態でもWiFiの接続を維持し、メール等の受信をできるようにする機能なんですが、私の用途だと邪魔な機能。

InstantGoが有効かどうかはコマンドプロンプトで powercfg /a を実行し、 スタンバイ(S0低電力アイドル)ネットワークに接続されています と表示されていたら有効と判定できます。

対策

InstantGoは画面から無効化できないので、レジストリをいじる必要があります。

HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Control\Power 配下に CsEnabled という値があるので、これを1から0に値変更し、再起動することでInstantGoが無効化されます。

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
Entry: CsEnabled
Type: REG_DWORD
Data: 0 ( 無効)1 ( 有効)

なお、Surface Pro3をUSBリカバリメディアで初期化し、Windowsバージョンが1511の状態で上記レジストリをいじった後、1911にアップグレードした段階で設定がクリアされていたので、Windowsのアップグレードを行った場合はこの設定を再度行う必要がありそうです。

また、この設定をしたうえでディスプレイの電源を切り、タイマー等でディスプレイの電源をオンにした際、ロック画面が表示されることがありますが、こちらに関してはグループポリシーの コンピューターの構成 > 管理用テンプレート > コントロールパネル > 個人設定 > ロック画面を表示しない を有効にするか、レジストリから HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization のNoLockScreenの値を1に設定することでロック画面が無効化されます。

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization
Entry: NoLockScreen
Type: REG_DWORD
Data: 0 ( ロック画面有効)1 ( ロック画面無効)

参考サイト

Windows 10では起動時に自動ログインを有効にしていない場合、ロック画面と画面の二つの画面が表示されます。 ロック画面はWindows 10を起動した直後に表示される、日付や時刻、あるいは設定によっては、天気などの各種情報が表示される
[はてなブックマークで表示]