\r\n\r\n

キーボードのOfficeキーをリマップする方法

Officeキーは、マイクロソフトのキーボードにある新しいキーです。ワードなどのアプリケーションを素早く起動することができますが、追加の修飾キーとしてautohotkeyで再マップしたり、アプリケーションショートカットを完全に無効にすることもできます...。

Officeキーは、マイクロソフトのキーボードに搭載されている新しいキーです。Wordなどのアプリケーションを素早く起動することができますが、追加の修飾キーとしてAutoHotkeyで再マップしたり、アプリケーションショートカットを完全に無効にすることができます。

オフィスキーは何ですか?

10月15日以降に発売されたマイクロソフトの新型キーボードに搭載されているキーです。また、マイクロソフトに付属する特別な絵文字キーをご存じでしょうか。この2つは、かつて右Windowsキーとメニューキーがあった場所、右Altと右Control:の間に位置しています。

OfficeキーはOfficeアプリケーションを開くことができ、特定のMicrosoftアプリケーションを開くためのホットキーもいくつか用意されています。WordやExcelを開くためのOffice+WやOffice+Xといった基本的なホットキーはもちろん、LinkedIn、Microsoft Teams、Yammerを開くためのOffice+L、Office+Yといったわかりにくいホットキーも用意されています。

オフィスキーは、shift+control+alt+windowsを送信します。

これは便利なのですが、Windowsキーと同じように、マイクロソフトが作った新しいキーだと思われるかもしれません。しかし、マイクロソフトは後方互換性を重視しており、まったく新しいキーを発明するのは面倒なので、近道をしたのです。

LispマシンのSpace Cadetキーボードで使われていた大昔の修飾キー「Hyper」キーをご存じでしょうか。事実上、化石と化しているのです。最近のキーボードでは見かけませんし、現在のOSでもサポートされていません。でも名前はかっこいいし、昔から無名のモディファイアキーだし、使うアプリケーションもない。

ハイパーキーは、各修飾キーの組み合わせでシミュレートするようにしました。macOSでは、Shift+Control+Option+Command、Windowsでは、Shift+Control+Alt+Windowsでハイパーキーをシミュレートしています。

関連:MacのCaps Lockを追加のモディファイアキーに変更する方法

このマッピングの背後にある考え方は、ユーザーが4つの修飾キーをすべて同時に押す必要があるアプリケーションをデザインするほどUXデザイナーは狂っていないということです。これにより、基本的にフルキーボード相当の修飾キーが手に入り、好きなようにバインドできるようになるのですが、これは素晴らしいことです。

少なくとも、マイクロソフトがOfficeキーを公開する前に、OSの初期サポートを追加したWindows 10の2019年5月のアップデートでは、そうなっていました。Officeキーは何に対応していると思いますか?

これはハイパーリンクになっています。Officeキーは、新しいキーを実装するのではなく、4つの修飾キーとして機能します。絵文字キー自体は実際のキーではなく、Office+空間のショートカットにマッピングされ、自分で押して絵文字ビューアを開くことができるようになっています。(Windows+を押すことができます。またはWindows+で、絵文字パネルを開くこともできます)。

キーボードに専用のオーバーキーがあれば最高ですね。多くの人はCaps Lockを使うことに回帰しますが、Officeキーは無駄な右Windowsキーに代わって、便利なものに変えてくれるのです。残念ながら、27種類ある文字キーとスペースバーのうち、Officeのショートカットで使われているのは10種類で、Microsoftは今後さらに追加する可能性があります。現在のところ、これらのショートカットをオフにする方法は組み込まれていません。設定にオプションはなく、レジストリの調整もなく、グループポリシーもない。

もちろん、Hyper+Yを押してもYammerのマーケティングページに飛ばないという事実は、Hyper-keyユーザーにとってかなり不安なことである。しかし、キーのリマップやショートカットを完全にオフにするなど、自分で調整することも可能です。AutoHotkeyを使い始める前に、PowerShellで以下のコマンドを実行して、レジストリの微調整を有効にする必要があります。スタートボタンを右クリックし、「PowerShell」をクリックして開きます。

REG ADD HKCU\Software\Classes\ms-officeapp\Shell\Open\Command /t REG_SZ /d rundll32

通常、自分でOfficeキーを押すと、Officeアプリケーションが開かれます。これにより、開く位置が変更され、キーを押すたびにアプリケーションが起動することがなくなります。残念ながら、アプリケーション固有のホットキーを無効にするためのレジストリに同様のものは見つかりませんでしたので、これらのホットキーを手動で再マップする必要があります。レジストリからアプリケーション固有のショートカットを無効にする方法があれば、コメントでお知らせください。この記事を更新します。

自動ホットキーでOfficeキーを再マップする方法

Auto Hotkeysは、キーボードのキーを特定の動作にリマップするプログラムです。他にもいろいろなことができますが、今回はOfficeキーの組み合わせからWindowsキーを削除することだけに使用します。

AutoHotkeyは、システムの他の部分によってアクセスされる前にキーボードイベントを傍受する低レベルのキーボードフックをインストールします。設定されたホットキーに一致する場合、イベントはAutoHotkeyによってインターセプトされます。そして、AutoHotkeyは独自に修正したキーボードイベントを送信することができます。ただし、Shift+Control+Alt+Win+Wのホットキーを送信すると、単語のショートカットがトリガーされるため、Shift+Control+Alt+Wを送信することはできます。

以下のスクリプトは、Office+WをShift+Control+Alt+Wにリマップします。テキストを自動ホットキースクリプトとして保存して実行するだけです。

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SetWorkingDir %A_ScriptDir% ; Ensures a c***istent starting directory. #UseHook #InstallKeybdHook #SingleInstance force SendMode Input #^!+W:: Send ^!+W return

文字列 "#^!+ は、Windows、Control、Alt、Shiftのそれぞれの自動ホットキーの略語です。このスクリプトはOffice+Wにマッチし、正しいシーケンスを送り返すことで、オープニングワードの問題を解決しています。

もちろん、他のキーT、Y、O、P、D、L、X、N、スペースもリマップする必要があるので、スクリプト全体はもっと長くなります。

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SetWorkingDir %A_ScriptDir% ; Ensures a c***istent starting directory. #UseHook #InstallKeybdHook #SingleInstance force SendMode Input #^!+W:: Send ^!+W return #^!+T:: Send ^!+T return #^!+Y:: Send ^!+Y return #^!+O:: Send ^!+O return #^!+P:: Send ^!+P return #^!+D:: Send ^!+D return #^!+L:: Send ^!+L return #^!+X:: Send ^!+X return #^!+N:: Send ^!+N return #^!+Space:: Send ^!+Space return

Office Keysで使用する10個のキーにはそれぞれ正しいホットキーを使用できますが、未使用のキーには完全なスーパーキーを使用することができます。また、これらのホットキーをAHKの機能にマッピングすることで、Officeアプリケーションが開かないように一定の処理をすれば、完全に自由に使用することができます。

この解決策は、マイクロソフトが(もしあれば)オフにすることを決定するまでは、ほとんどの人にとって十分なものでした。しかし、本当にOfficeアプリケーションのショートカットを完全に無効にしたいのであれば、ハッキングによる解決策があります。

オフィスキー統合を完全に削除する方法

警告:以下は少し醜いハックです。この方法は上級者向けですので、よくわからない方は自動ホットキーによる解決策をお勧めします。

しかし、Shift-Control-Alt-Winのキーの組み合わせをスーパーキーとして使いたい、マイクロソフトが最初からOfficeホットキーを追加しない方がいい、という場合には、この問題を完全に解決するソリューションがあります。

Windowsでは、システム全体のホットキーは、RegisterHotKeyシステム関数を使用して、オペレーティングシステムに登録する必要があります。このようにOfficeキーのホットキーは、デスクトップ、タスクバー、ファイルエクスプローラーを担当するエクスプローラーによって登録されています。RegisterHotKeyで作成されたホットキーは、登録したプロセスが終了すると自動的に登録が解除されるため、Windowsに不可欠な要素であるため、ここでホットキーを登録することは理にかなっています。ブラウザは常に開いているため、ホットキーは永続的に使用できます。

最初に考えたのは、Officeのホットキーをオーバーライドして、独自のホットキーを登録することでした。しかし、RegisterHotKeyを実行するプログラムを作成すると、動作しないことがわかります。他のプログラムによってすでに登録されているホットキーを登録することはできません。

しかし、プログラムが終了すると、自動的にホットキーからログアウトします。つまり、ホットキーを登録するプログラムをオフにすることができれば、それを無効にすることができるのです。残念ながら、エクスプローラーを閉じることは、利用可能なコンピュータがない状態で立ち往生することになるため、あまり現実的な解決策ではありません。ブラウザを再起動すると、起動時にホットキーが再登録されます。

そこで、この解決策を紹介します。Office Key Fixerは、エクスプローラを閉じて、上書き用のホットキーを解放します。そして、Officeキーに関連する各ホットキーを登録し、エクスプローラーを再起動します。エクスプローラがバックアップを開始すると、通常通りOfficeキーのホットキーを登録しようとしますが、当プログラムが既にホットキーを登録しているため、それを阻止することができます。起動時にしかしようとしないので、数秒待ってプログラムを終了させるだけでよい。これにより、ホットキーの登録が解除され、他のプログラムでも使用できるようになります。

このソリューションは非常に効果的で、ランダムにマイクロソフトのアプリケーションを開くリスクなしに、キーボードのすべてのショートカットで実際のOfficeキーまたはハイパーリンクのシミュレーションを使用することができます。Officeのホットキーが完全にカットされます。これらのキーの組み合わせを押しても、ブラウザにはメッセージが表示されない。

唯一の欠点は、エクスプローラーを再起動しているため、起動時にこのプログラムが実行されると、再起動する前に一瞬だけデスクトップを黒くリフレッシュしてしまうことです。超絶邪魔なわけではないのですが、十分目立ちます。スタートアップアプリケーションの読み込みに1秒かかると、開いていたファイルエクスプローラーのウィンドウがすべて閉じられます。プラス面では、マイクロソフトのマーケティング部門とキーボードの制御をめぐる争いで1対0になったことで、安心することができます。

いずれにせよ、スクリプトは比較的短いC++である。

#include <windows.h> #include <stdio.h> #include <thread> #include <chrono> #include <iostream> int main(int argc, wchar_t* argv[]) { //Build Array Of Keys To Unregister //These map to W, T, Y, O, P, D, L, X, N, and Space, respectively. UINT offendingKeys[10] = { 0x57, 0x54, 0x59, 0x4F, 0x50, 0x44, 0x4C, 0x58, 0x4E, 0x20 }; //Kill Explorer system("taskkill /IM explorer.exe /F"); //Register hotkey for (int i = 0; i < 10; i++) { RegisterHotKey(NULL, i, 0x1 + 0x2 + 0x4 + 0x8 | MOD_NOREPEAT, offendingKeys[i]); } //Restart Explorer system("start C:/Windows/explorer.exe"); /* Sleep for a few seconds to make sure Explorer has time to attempt to register the Office hotkeys, and get blocked by our hotkeys */ std::this_thread::sleep_for(std::chrono::milliseconds(4000)); //deregister hotkeys by ID for (int i = 0; i < 10; i++) { UnregisterHotKey(NULL, i); } return 1; }

また、GitHubでも公開されています。自分でコンパイルする必要がありますが、いずれにせよインターネットで見つけた適当な実行ファイルを実行するのはやめましょう。バイナリとして取得したら、C: \ProgramDataMicrosoftWindows⇄Start Menuに置いて、コンピュータ起動後に実行するようにします。

スタートアップフォルダに配置された実行ファイルを開くのに少し時間がかかるため、デスクトップが見えてから5〜10秒程度プログラムが動作することがあります。開いているすべてのファイルエクスプローラのウィンドウを閉じますが、Chromeなど他のアプリケーションは閉じません。

この記事を読んだ方が、Explorerが再起動せずにホットキーを登録するのを防ぐ方法を知っていたり、他のスレッドで作成したホットキーの登録を解除することが可能であれば、ぜひコメントで教えてください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ