Windows10/11のタブレットUIを回避する

# はじめに
Windows搭載タブレットPC（筆者の場合はSurface Go 3）から純正キーボードを取り外した際、問答無用でタブレット用のUIになってしまい、操作性が落ちてしまう問題があったので、解決策を探しました。

↓通常のWindowsのデスクトップとエクスプローラーの画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/83fd34f0-d587-9633-31d5-b7cfc19fdc8c.png)

↓キーボードを外した際に切り替わる、タブレットモード時の画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/1ab12f00-1840-6e04-8e6e-18050b6151d5.png)

タッチ操作がしやすいように、文字のフォントサイズやアイコンが大きくなりますが、その代わりに表示領域が小さくなります。非常に不便です。

特に、純正キーボードを外した状態で外付けキーボードを接続した時も、このUIになってしまいます。

先日、この問題の回避策を見つけたので紹介します。

# 注意
:::note warn
この方法ではレジストリを操作します。
恒久的な設定値を操作するわけではありませんが、レジストリは間違った操作をすることでOSが起動不能になるなど、不利益を被る可能性があります。注意して実行するようにしてください。
:::

# 方法
0. 「Windowsキー」+「rキー」を同時に押します。外付けキーボードがない場合は、コマンドプロンプトを起動させます
0. 表示されたウィンドウに「regedit」と入力し、Enterで実行します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/894d7d23-514e-1ff2-a4e4-d03a47192e57.png)

0. UAC（ユーザーアカウント制御）画面が表示された場合、「はい」をクリックします
0. レジストリ：「**コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl ConvertibleSlateMode**」の設定値を「**0**」から「**1**」に変更します

上記の操作により、純正キーボードが接続されていない状態でも、タブレットUIを回避することができます。

# 根拠
https://learn.microsoft.com/ja-jp/windows-hardware/customize/desktop/unattend/microsoft-windows-gpiobuttons-convertibleslatemode

今回操作したレジストリについては、上記のMicrosoft Learnのページに記載されています。

>ConvertibleSlateMode は、デバイスに物理キーボードがあるかどうかを指定します。 Windows では、スクリーン キーボードを表示するかどうか、またはタッチ最適化ユーザー インターフェイスを表示するかどうかを決定するときに、この設定を使用します。

# 応用
## キーボードが接続されたイベントを拾って自動で実行
再起動の操作を行った場合や、キーボードに関するイベントが発生した際に、設定値が元に戻ってしまうことがあるため、タスクスケジューラでレジストリ操作を自動化しました。

## 方法
0. スタートメニューや検索窓から、「タスクスケジューラ」を実行します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/ad7aba85-744f-e9eb-782c-60cb146a746e.png)

0. 右側のメニューの「タスクの作成」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/3d20e20c-f45e-bcda-2f6b-5b12e42bbbc5.png)
0. 「ユーザーまたはグループの変更」をクリックし、オブジェクト名を「SYSTEM」にして「OK」をクリックします![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/834e1c4a-0eda-633c-4a49-608631cf5ddc.png)

0. 以下の画像のように、他の項目も設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/63ff73ea-9e2e-9def-f57a-833e592c8bd1.png)

0. 「トリガー」のタブに移動した後「新規」をクリックし、表示された画面で以下のように設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/bbf74f94-ca4b-ea89-8c4d-ab2c3120739a.png)
イベントはキーボードが取り外された・接続された際に発生されると思われるものを選びました。環境によって変わる可能性もあるので、イベントビューアーを使ってお使いの環境にあったイベントを設定してください

0. 続いて、「操作」のタブに移動し、「新規」をクリックした後、以下のように設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/d79a0463-a39e-e352-4f89-93e6f137fe82.png)
引数には「add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl /v ConvertibleSlateMode /t reg_dword /d 1 /f」と入力してください

0. 条件タブでは、一番左の列のチェックボックスを全て外してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2921137/c7584846-2380-7eb3-37df-8bd3749565c5.png)

0. 「設定」タブで行うことはないので、「OK」をクリックして保存します

これで、純正キーボードを取り外した場合でも、タブレットUIを常に回避できるようになりました。

# 最後に
Windowsには、完全にタブレットUIに切り替える設定項目はあるのに、完全にタブレットUIを封印する設定項目はありません。（見つけられてないだけかもしれませんが…）

WindowsでタブレットUIを使う場面はほとんど無い気がするんですが、みなさんはタブレットUI、使ってますか？
もし良ければコメント頂けると嬉しいです！

いいねやストックも頂けると大変喜びます。
最後までお読みいただきありがとうございました！

# 参考文献
Microsoft Learn

https://learn.microsoft.com/ja-jp/windows-hardware/customize/desktop/unattend/microsoft-windows-gpiobuttons-convertibleslatemode