fastapple's blog

時系列関係なく、情報を追記・分割・統合などします。ブログに記載の内容のうち、引用ではなく、私自身が記載している文章・コードなどについては、自由にご利用ください。

Ryzenでも画面回転のショートカットを使う


今年は毎日更新するつもりが早速途絶えてしまった。1日空いてしまったけど、気を取り直していきたい。閑話休題

Windowsで、画面回転のショートカットキーを、Ctrl+Alt+矢印キー(矢印の方向が、上側にくる)と思っている人も多いのではないだろうか。実際には、これはWindowsのショートカットキーというよりも、IntelのCPUに内蔵されたGPUにおけるショートカットキーであるらしい。Nvidiaのグラフィックボードについては知らないが、少なくとも、今自分が使っているRyzenのCPUに内蔵のGPUでは、このショートカットは機能しなかった。

自分の場合、YouTubeで縦型の動画をみたりすることも多いため、画面回転をどうにかショートカットで実現したい。そこで、フリーウェアを用いて、画面回転をショートカットで行えるようにしたので、方法を記載する。自分の場合には、ブラウザを表示しているときに、マウスの中央ボタンを押すと、画面の縦横が切り替わるようにしている。

まず、実現するためのフリーソフトだが、これはdc2というソフトを利用する。これは商用利用以外ではフリーのフリーウェアである。ライセンスの詳細は各自確かめてほしいので割愛。

以下の公式サイトからダウンロードできる。
12noon.com

さて、ダウンロードしたら、dc2.exeという実行ファイルがあるフォルダがあると思う。このコマンドにxmlファイルを読ませて画面回転を行う。通常の利用シーンでは、xmlファイルに画面の状態(横画面の状態、縦画面の状態)をそれぞれ記録しておき、それを切り替えるイメージで使用するのがよいと思う。

今回は以下のフォルダに格納したという想定で進める。
C:\software\portable\dc2\dc2.exe

設定用のxmlファイルの作成方法について、上に書いた公式サイトに書いてあるので、細かい説明は省く。

画面が通常の横表示の状態で、まず以下のコマンドをたたく。

.\dc2.exe -create="HorizontalDisplay.xml"

そうすると、上記の例では、横画面の状態が記録されたHorizontalDisplay.xmlというxmlファイルができる。

次に、Windowsのディスプレイの設定から、画面を縦にした状態で、以下のコマンドをたたく。

.\dc2.exe -create="VerticalDisplay.xml"

そうすると、今度は縦画面の状態が記録されたVerticalDisplay.xmlというxmlファイルができる。

さて、dc2.exeを配置したディレクトリと同じディレクトリに以下のようなバッチファイルを作成する。DC2DIRの部分は、実際に格納したフォルダ名に変更すること。

dc2h.bat

@echo off
set DC2DIR=C:\software\portable\dc2
set DC2EXE=%DC2DIR%\dc2.exe
%DC2EXE% -configure="%DC2DIR%\HorizontalDisplay.xml"
del /Q "%DC2DIR%\VerticalNow"

dc2v.bat

@echo off
set DC2DIR=C:\software\portable\dc2
set DC2EXE=%DC2DIR%\dc2.exe
%DC2EXE% -configure="%DC2DIR%\VerticalDisplay.xml"
type nul > "%DC2DIR%\VerticalNow"

ChangeDisplayMode.bat

@echo off
set DC2DIR=C:\software\portable\dc2
set DC2EXE=%DC2DIR%\dc2.exe
SET filename="%DC2DIR%\VerticalNow"
IF EXIST %filename% (GOTO FILE_EXIST) ELSE GOTO FILE_NOT_EXIST

:FILE_EXIST
Call %DC2DIR%\dc2h.bat
GOTO END

:FILE_NOT_EXIST
Call %DC2DIR%\dc2v.bat
GOTO END

:END

あとは、このChangeDisplayMode.batをたたけば、縦画面と横画面が交互に入れ替わるようになる。
自分の場合、これをロジクールのゲーミングマウスの中央ボタンを押したときに、バッチが呼び出されるようにしている。

あとは実際に物理的なディスプレイも動いてくれればいうことないんだが、それはそういうディスプレイを買う必要があるだろう。(MACだが、そういうのがあるっぽい)
もしくは次点の策として、ディスプレイを動かしたときにコードを走らせる手もある。以下のサイトなどが参考になりそうだ。(読んでいないので、とりあえずメモ程度に貼るだけ)
www.instructables.com

とは言え、ここに書いた情報だけで割と実用になっているので、公開する。