スクリーンセーバーをすぐにオンにする方法、またはスクリーンをロックしたとき(WIN-L)またはデスクトップ上の何かをクリックしてスクリーンをオフにする方法を探しています。
可能な解決策として MonitorES を見つけましたが、多少古くなっており、しばらく更新されていないためWindows 10を特にサポートしていないことが心配です。また、選択したメディアプレーヤー( SMPlayer )もサポートしていません。
Windowsの設定/ショートカットまたは他の方法でこれを行う方法についてのアイデア/提案はありますか?
https://Gist.github.com/RichardBronosky/c61465ed897c2f10e9bf16704d1d9af9 には、このための2つの異なるツールがあります。
これを正当なものにするためにSO答えにするために、より簡単なものを含めます:
#!/bin/bash
# From: https://Gist.github.com/RichardBronosky/c61465ed897c2f10e9bf16704d1d9af9
# This works from both WSL/bash and powershell!
powershell.exe -command "& (Get-ItemProperty 'HKCU:Control Panel\Desktop').{SCRNSAVE.EXE}"
これにより、レジストリから [ひどい名前の] SCRNSAVE.EXE
propertyのvalueが取得されます。その値はたまたま*.scr
ファイルへの完全なパスであるため、Powershellにコマンドとして実行するように指示することができます(私もそうです)。
これは、PowerShellがbashのようなテキストのストリームではなく、オブジェクト(メソッド、アクセサーなどを完備したもの)を返す方法をかなり簡潔に示したものです。
ここでは、 Get-ItemProperty
は、多くのプロパティを持つ[タイプ:System.Management.Automation.PSCustomObject]のオブジェクトを返します。便利なドット表記で単一のプロパティにアクセスします。 (CLIでテストせずに直接sedをスクリプトに書き込むことができるとしても、これはISより良いことです。)オブジェクトを探索するための便利なツールがあります Microsoft technetブロガーが推奨 。残念ながら、インストール 今は必要-AllowClobber
オプション。( 詳細はこちら 。)やや不便[ flat]代替案は Get-Member
です(出力をパイプするだけです)。
1/4世紀のbashの経験を持つpowershellは非常に奇妙ですが、操作するのに少し新鮮です。それをよりPython的な環境でのシェルスクリプトと考えてください。それはひどくはありません...それらのバックスラッシュを除いて。
組み込みのスクリーンセーバーは%windir%\SysWOW64
フォルダ(例:Mystify.scr
、Ribbons.scr
、scrnsave.scr
)。これらのファイルの1つを実行するWindowsショートカットを追加できます。ショートカットキーを追加することもできます。
このオープンソースアプリ はホットコーナーを追加し、ロックオプションでそれらの1つを設定できます。ウェブサイトはミニマリストですが、アプリはWindows 10およびマルチモニターで正常に動作します。
最後のビルドには1つの機能がありません。これは、モニターをロックするのではなくスリープ状態にする機能です。それが必要な場合は、 ソース を自分でコンパイルできます。
私は次のソリューションを提供します:次の内容で.batファイルを作成します:
for /f "tokens=3" %%a in ('reg query "hkey_current_user\control panel\desktop" /v scrnsave.exe') do start "" /wait /d "%%~dpa" "%%~nxa" /s
tsdiscon
そして、セッションをロックしたいときにそれを起動します。
説明。
タイトルに書かれていることをしたかったのですが、それを行う方法が見つかりませんでした(まだ希望しています)。したがって、スクリーンセーバーの設定からの道をたどることに決めました。スクリーンセーバーの継続としてセッションをロックすることです。
スクリプトは、Windowsレジストリからスクリーンセーバーのキー値を取得し、それを使用して、事前設定されたスクリーンセーバーを起動します。これが、Windowsでスクリーンセーバーを構成した後にのみ機能する理由です。ここでスクリーンセーバー設定を構成できます(Win + Rを押し、下にテキストを入力してOKを押します):
control.exe desk.cpl,screensaver,@screensaver
また:
スクリーンセーバーの設定には、GUIからアクセスできます。
「tsdiscon」の代わりに「rundll32 user32.dll、LockWorkStation」を使用できますが、私は2番目の方法を好みます。
私は、スクリーンセーバーを起動する前にすべてのウィンドウを非表示にして、ロック画面への切り替え中に情報が読み取られないようにする考えを持っています。
あなたはサードパーティのアプリを見つけることを試みることができます=)
私はcmdから同じようにする方法の情報を見つけたかったのですが、必要な情報が見つからなかったので、次のリソースの情報に参加することにしました。
そしてもちろん、/ ?、 reg /?など=)