はじめに
こんにちは。
今回は画面ロックをタスクバーからかんたんに行えるようにする小技を紹介します。
経緯
(本題とは関係ないので読み飛ばして結構です)
最近会社のメインPCが変わりました。念願のWindows10です。
会社では長らく開発用(Win8.1)とメイン(Win7)の2台体制で仕事していましたが、今回メイン機が7→10と入れ替わったかたち。
この2台はInput Directorというツールでマウス・キーボードを共有しています。
Input Directorは、PCを同一ネットワーク上にある別のPCから操作するためのツールです。
マスター(操作する側のPC)のマウスとキーボードで、スレーブ側(操作される側のPC)を操作できる優れものです。
なのですが、1点、不便なのが画面ロックです。
画面ロックは通常、Winキー+Lやファンクションキーの組み合わせなどで行えますが、マウス・キーボード共有している状態でスレーブ側を画面ロックしようとしても、マスター側がロックされるだけで、スレーブ側はとロックされません。
つまり、キーボード共有した状態で画面ロックのショートカットキーを入力すると、スレーブ側ではなくマスター側がロックされてしまうので、スレーブ側をロックするには別の手段を用いる必要が出てきます。
そこで使ったのが、今回の「タスクバーに画面ロックショートカットをピン留めする」という方法です。
画面ロックをコマンドで行う
画面ロックをタスクバーから実行するために、まず考えたのはバッチ化する、ということでした。
バッチ化するために、コマンドから画面ロックを実行する方法を調べたところ、下記の記事がヒットしたので、使わせていただきました。
ここに書かれている通り、「rundll32.exe user32.dll,LockWorkStation」と書いたファイルを作成し、拡張子を「bat」すればOKです。
このファイルをダブルクリックなどで実行すると、しっかり画面ロックされます。
(今回は「ロック.bat」というファイルにしました)
ショートカット化する
バッチファイルは、そのままではタスクバーにピン留めできません。
そこで、作ったバッチファイルをショートカット化します。
バッチファイルを右クリック→ショートカットの作成、とするとショートカットができます(ショートカットの名前は「ロック」にしておきます)。
これだけではまだタスクバーにピン留めできないので、これをコマンドプロンプト経由で呼ぶよう、変更します。
今回はバッチファイルは「C:\bat」のフォルダに保存しているので、作成したショートカットのリンク先は「C:\bat\ロック.bat」となっています。
これを、「C:\bat\ロック.bat」→「C:\Windows\System32\cmd.exe /C C:\bat\ロック.bat」と変更することで、コマンドプロンプト経由で呼ばれるようになります。
こうすると、バッチファイルはタスクバーにピン留めできるようになります。
コマンドプロンプトのアイコンだと味気ないので、アイコンも変更します。
アイコンはフラットデザインでよさげなものを選択。今回はこちらの「PNG」「背景なし」を使わせていただきました。
これをicoに変換すると、ショートカットアイコンとして使えるようになります。
今回はオンラインで変換できる下記のサイトを使用。
アイコンの準備ができたら、再びショートカットのプロパティを開き、アイコンを変更し、タスクバーにピン留めしなおします。
これで、ちょっとおしゃれな画面ロックショートカットをタスクバーにピン留めすることができました。
もう一工夫
これだけでもいいのですが、この状態でピン留めしたショートカットから画面ロックをしようとすると、コマンドプロンプトの画面が一瞬出てしまいます。
そこで、コマンドプロンプトが出ない方法を調べると、VBScriptで記述すればよい、ということがわかりました。
拡張子を変更し、「ロック.vbs」というファイル名にします。 中身は以下のコードに変更します。
Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "rundll32.exe user32.dll,LockWorkStation",0 Set oShell = Nothing
ショートカットのプロパティのリンク先も、VBScriptになったので以下のように実行するexeを変更します。
C:\Windows\System32\wscript.exe //B C:\bat\ロック.vbs
最後に、ショートカットをタスクバーにピン留めしなおします。
これで、ワンクリックできれいにロックがかかるようになりました!
快適な2PC生活が送れそうです。