VBS:マウスパッドの有効無効をキーボードだけで切り替える
dell のノートPC「inspiron」でタッチパッドがショートカットなどで無効化できない問題を解決するお話です。
最近、ノートPCを買ったのですが、これがまた・・・。おぃ、コラって内容でして・・。
そちらは、本館のほうにでも書こうかなと思うのですが、数ある不満の一つで最大の欠点が、
タッチパッドをキーボードから無効にできない。。
というもの...
今まで使っていたノートPCは、必ずタッチパッドを無効にするためのホットキーがついていましたので、最近のノートPCだったらそれくらいの機能付いていると勝手に信じてしまった自分がバカでした・・・。
まさかついていないのがほとんどという製品(シリーズ)があるとは思わず・・。
でも、あれが使えないとかなり不便なんですよね。
特に今回はタッチスクリーンじゃないので余計に不便です。
タッチパッドでの拡縮とかってCTRL + マウスホイールをくるくるとは、根本的に違うんですよね。
なので、キーボードをフルに活用する際以外は、できるだけオンにしておきたい。
しかし、手首に反応して動いてしまう。
そこでかなり強引ですが、キー配列の配置ソフトなどの特別なソフトを使うことなく、キーボードのショートカットだけで実現してみました。
おそらく、DELL製品のPCでInspiron シリーズを購入された方はほぼ、この問題にぶつかるのと、他PCでも似たような製品があるみたいなので、需要はあるのかなと思い、あまりプログラミングに興味のない人でもすぐに使えるようなものになっています。
テキストファイルに張り付けたものをとある設定するだけなので、たぶん簡単・・。
余談はよいので結論だけ知りたい人は、実現手順 から試してください。
※ ノークレーム、自己責任でお願いします。
なお、マウスをつないだ時にはタッチパッドを無効にできるオプションは、Windows10の機能として最初から用意されているので、それで事足りる人にはあまり関係のない情報です。
ここでは、あくまでキーボード入力中にあまり複雑な操作なくショートカットなどですぐにタッチパッドを無効にしたい人向けの情報となります。
購入した製品(シリーズ)について
私の購入した Inspiron は、下記のような奴です。(型番は違いますが。。)
どうもこの製品のヘルプセンターがかなりポンコツでして、英語しかなかったりそもそも該当する製品についての説明をしていなかったりで使い物にならない。。
自動化されていて、カスタマーページとしてはよくできているのですが、仕組みが素晴らしくても正式な情報にたどり着けないというのは、きつかった。
そして、このノートには、マウスパッドをキーボードから無効にするためのホットキーは存在しません。
XPS とかいうやつには存在しているようですが・・。
同じ製品をご利用で同じ課題にぶつかった人の助けになれば幸いです。
実現方法(具体的な実現の仕組み・考え方)
1.マウスパッドを無効にする設定画面を直接呼出し、有効無効を切り替える。
2.1の動作をキーボード操作だけで行えるように設定を行う。
実現手順
1.マウスパッドを無効にする設定画面を直接呼出し、有効無効を切り替える。
マウスパッドの有効無効を切り替えるには、タッチパッド付のWindowsに
搭載されている機能を使います。
[Windowsキー] → 歯車マーク(設定)→ デバイス → タッチパッド
の順番にクリックしていくと、タッチパッド設定画面が開きます。
※ タッチパッド付PCでドライバが入っていれば通常はあるはずです。
ないときはドライバを探してみてください。
こんな画面です。
この画面で、タッチパッドをオフにすると無効、オンにすると有効になります。
※ マウスがPCにつながっていないときは絶対に変更しないでください。
操作方法がなくなって戻せなくなります。
通常は、この画面からマウスなどで操作をするのですが、今回は
この画面を直接呼び出して、さらに呼び出すたびにオンまたはオフに
切り替えるようにスクリプトを書きます。
※ スクリプトとは、簡単なプログラムのようなものです。
スクリプトは、VB Script と、BAT(コマンドバッチ)を使用します。
どちらもWindows 10 に標準で搭載されている機能で利用できます。
(すみません...久しぶりすぎてはてな記法が使えないことに気づきました。。)
メモ帳を開いて、以下のコード(青字)をコピペし noTouch.vbs という
ファイル名で保存します。
noTouch.vbs
============================================
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd /c start ms-settings:devices-touchpad",0,false
WScript.Sleep( 2000 )
WshShell.SendKeys " "
============================================
1行目:VBScriptを動かすためのシェル(実行環境)を作ります。
2行目:コマンドプロンプト画面を起動し、ms-settings:devices-touchpad
というコマンドを実行することで、マウスパッドの設定画面を呼び出します。
3行目:画面を開くのにPCのスペック次第では時間がかかるので2秒ほど待ちます。
4行目:スペースキーを画面に送り付けることで、マウスパッドオンオフのスイッチを
切り替えます。
ms-settings: ~ については、ほかにもいろいろな設定が呼び出せるので、
詳しく知りたい方は、下記を参照してください。
Windows 10の設定画面をコマンドで素早く開く(October 2018 Update版):Tech TIPS - @IT (atmarkit.co.jp)
2.1の動作をキーボード操作だけで行えるように設定を行う。
1)前の手順で作成したVBScriptファイル(noTouch.vbs)を右クリックし、
「ショートカットを作成」をクリックします。
2)作成したショートカットを右クリックし、[プロパティ]を選択します。
3)プロパティ画面が開きますので、「ショートカット」タブから
リンク先の中身の先頭に
C:\Windows\System32\cmd.exe /C
をくっつけます。
※ 最後のC の後ろには半角スペースをつけてください。
4)[適用] ボタンをクリックして、ショートカットの作成は完了です。
※ 3の作業はかなり重要で、この設定によりアプリ以外のものを
タスクバーから直接呼び出せるようにしています。
5)完成したショートカットを再び右クリックして、
[タスクバーにピン留めする]
をクリックします。
6)おそらく一番右端に真っ黒な画面のアイコンが表示されるので、
そのアイコンを移動できる一番左の位置になるところに移動します。
7)これで設定は完了です。
使い方
キーボードから
[Windowsキー] + 1
を押してみてください。
先ほど作成したマクロが実行されます。
最初に黒い画面(コマンドプロンプト)が開き、そのあと設定画面が表示されます。
※ その間は画面をいじらないでください。
これは、[Windowsキー] + 数字キー を押すとタスクバーにあるアイコンを
左から1,2,3,4 という感じで実行できるWindowsのショートカットを
利用しています。
今回は、一番左に設定しているので、1 を押せば一番左のアイコンが
実行されます。
後記.
すみません。。。久々にブログ書いたら長文になってしまいました。
あまりプログラミングに詳しくない人向けの説明になるので、
できるだけ丁寧に説明したつもりですが、PC初心者の人には、
マクロなんて怖いとか大変そうなんて思われた方もいるかもしれません。
同じ問題に遭遇している方に少しでも支援になっていれば幸いです。
技術者の方向けには、いくつかこの中にテクニックが入っていたので
要約して説明します。
〇 ms-settings:~ に関する使い方
〇 WscriptShell でのコマンド実行の方法
〇 タスクバーへアプリ以外のショートカットの登録方法
〇 Windows キー関連のショートカット
参考になっていれば幸いです。
追記(2021/1/17):
この記事を書いてからこの設定がすごく便利すぎて、なくてはならないほどになってしまいました。
逆を言えばそれくらいのものであるとも確信できたので、さらに簡単にした手順を後日書いてみようと思います。
読み返してみて、初心者がこんなのできるわけない・・・と、反省しました。^^;
追記(2021/1/19):
上記手順で作成するファイルをダウンロードできるようにした手順を以下に別記事として投稿しました。
わかりづらかった方の参考に少しでもなっていれば幸いです。