Windowsでの開発や、WindowsPCを常設に使う際の裏技的ツール・TIPS集

Windowsでの開発時や、WindowsPCを常設機として使用する際の便利ツール、TIPSをまとめておきます。随時更新。

# NirCmd
https://www.nirsoft.net/utils/nircmd.html

ハードウェアレベルのことまでいろいろ出来ちゃう便利コマンドラインユーティリティ。
目的のコマンドを.batファイル化して置いとくと色々便利。
出来ることは色々ありすぎて書ききれないけど、いくつか挙げるとこんな感じ。

 - CDドライブの開閉
 - PCの電源の操作
 - システム音量の変更、ミュート
 - モニターの操作
 - スクリーンセーバーの操作
 - スクショをとる
 - メッセージボックスの選択肢を自動で選択

など。詳細は上記リンク先のトップページに例がずらっと並んでいるのでそっちを参照。

# GODMODE
https://gigazine.net/news/20150806-windows-10-godmode/

リンクはGigazine
名前は厳ついが、要はコントロールパネルなどで階層構造に並ぶような設定項目を、全て並列に並べるモード。
アプリのようにデスクトップから起動するようにできるので、緊急時にパッと立ち上げて検索窓から目的の操作画面に一発でたどり着ける。

# 究極のパフォーマンス
https://aprico-media.com/posts/6347

個人ブログを参考に貼らせていただいた。
WindowsのPCは電源プランによりパフォーマンスを変更することができる。PCによっては高パフォーマンスは特別な操作を行わなければ出現しない。また、高パフォーマンスのさらに上の究極のパフォーマンスというモードも存在する。


# POWERTOYS
https://docs.microsoft.com/ja-jp/windows/powertoys/

Microsoft公式のユーティリティセット
オープンソースで開発されており、Winodowsに搭載するつもりが、見送りとなった機能をまとめたもの。

 - 特定のウィンドウを最上位に固定
 - 電源とスリープを設定変更せずに、起動状態を保つ
 - カラーピッカー
 - グリッドなどの複雑なウィンドウレイアウト
 - キーボードの配置変更やショートカット割り当て
 - ファイル名の一括変更

などなど。他にも多数便利機能を提供する。

# WindowsTerminal
最近定番になりつつある(?)WindowsTerminal
Windows標準のコマンドプロンプトやパワーシェルは、タブでの管理やTmux的な画面の分割ができないので扱いにくい。
WindowsTerminalを使用すると、複数種類のシェルのタブ管理や、画面の分割ができる
例えば、以下のように.batを書いておけば、ダブルクリックで複数プロセスを4分割画面で実行できる。
    ※連続して起動するので、起動順を気にする場合はsleepなどを追加るとよい。

```batch
set AppPath=AAA/BBB/CCC
@wt.exe -w 0 new-tab -p "コマンド プロンプト" --title "AppA" -d %AppPath% cmd.exe /c "AppA.exe";^
split-pane -V -p "コマンド プロンプト" --title "AppB" -d %AppPath% cmd.exe /c "AppB.exe";^
split-pane -V -p "コマンド プロンプト" --title "AppC" -d %AppPath% cmd.exe /c "AppC.exe";^
move-focus left; move-focus left; split-pane -V -p "コマンド プロンプト" --title "AppD" -d %AppPath% cmd.exe /c "AppD.exe";^
```

https://learn.microsoft.com/ja-jp/windows/terminal/command-line-arguments?tabs=windows


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467051/fd12cd04-94e8-2f87-0c88-4d5bb452548d.png)

# 最前面でポーズ
https://www.gigafree.net/utility/window/pause.html#:~:text=%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E9%80%9A%E3%82%8A,Pause%E3%80%8D%E3%82%AD%E3%83%BC%E3%82%92%E6%8A%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

名前の通り、指定のウィンドウを常に最前面に固定する。
上記のPOWERTOYSでもできるようだが、これはその機能の単体版。
本来、pauseキーがあればできる機能のようなので、pauseキーがあるキーボードを用意すればソフトを使わなくても実現可能。
(このソフトはpauseキーをエミュレートしている。)

# vvin
自動起動時の画面配置や固定などの設定ができて便利。
個人製作で作っておられるもの。

https://shuheikubota.github.io/soft/vvin/#%E5%9F%BA%E6%9C%AC%E5%BD%A2

# 複数アプリでカメラを使用する
#### 仮想カメラを使う
https://www.gigafree.net/media/webcam/KVYcam.html

Windowsではcamera frame serverへの複数アプリの接続方法は公開されていないため、基本的に一つのアプリケーションがカメラを使用すると、他のアプリケーションでは使用できなくなる。(Windows Helloで使用できるのみ。。)
仮想カメラと呼ばれるアプリケーションを使用すると、複数アプリケーションからカメラにアクセスできる。
例としてKVYcamを挙げているが、他にもいくつか似たようなものがあるので、"仮想カメラ"のワードでググると見つかるはず。

#### NDIを使う
https://tricaster.jp/ndi-central/

NDIというカメラ映像をIP経由でストリーム共有できる仕組みがあるので、それを使う。


# 複数アプリでマイクを使用する
#### 排他モードを切る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467051/32a9ae3f-e401-fbbe-87b5-ccd342e374f4.png)

基本的にマイクは、何も考えずとも複数アプリで利用できる。
が、特定アプリ起動時に利用できないようになる場合は、アプリケーションが "排他モード" で起動している可能性がある。
Windowsの設定で、プロパティから排他モードに関するチェックを外せば、複数アプリで利用できるようになる可能性がある。

# コマンドプロンプトを左クリックで停止しないようにする
コマンドプロンプトの左上のアイコンをクリックし設定画面を表示する。
「オプション」タブの「編集オプション」の中にある「簡易編集モード」のチェックを外す。
これでコマンド実行中に左クリックしても処理が止まらなくなります。

https://softantenna.com/blog/windows-10-command-prompt-no-stop/#:~:text=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%AE%E5%B7%A6%E4%B8%8A%E3%81%AE,%E5%87%A6%E7%90%86%E3%81%8C%E6%AD%A2%E3%81%BE%E3%82%89%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82


# エッジスワイプやタッチ長押しなどのタッチイベントの無効化
#### 設定でどうにかする

https://qiita.com/Akoarum_K/items/7f65c67f78b2ed9edb6c

https://qiita.com/ymkn/items/5585080f294502fd40e8

参考記事を貼らせていただいた。
古い手法だと効かなかったりするので注意。また、設定後再起動を要求されるものも多いので、設定後は再起動して様子を見るとよい。

#### 物理的にどうにかする
エッジスワイプなどについては、コンテンツをHDで作っておいて、FHDディスプレイの中央にし、周りを造作で覆ってしまうという手もある。
どちらにせよ、ディスプレイ側面のボタンなどを押されないようにするため、ディスプレイの縁を覆うことはよくあるので、事前に話を通せるなら意外と有効。Windowsでうまくいかない場合や、Windows以外のOSでチャレンジする場合は検討の余地あり。

# 自動Updateを無効化
会社の先輩に教えてもらった

環境: Windows10 Home 64bit
バージョン: 21H1
OSビルド: 19043.1415


「受信の規則」で「新しい規則」をクリックする。
「新規の受信の規則ウィザード」が表示されるので、「カスタム」をクリックして「次へ」をクリックする。
サービスの「カスタマイズ」をクリックする。
ラジオボタン「このサービスに適用する」を選択し、「Windows Update wuauserv」を選択する。OKをクリックする。
「次へ」をクリックする。
「次へ」をクリックする。
「接続をブロックする」を選択して、「次へ」をクリックする。
「次へ」をクリックする。
名前は何でもいいので入力して、「完了」をクリックする。
これで1個のルールが作れたので、もう1個作ります。
上記4の部分を「Windows Update Medic Service WaasMedicSvc」を選択して同じようにルールを作成します。
これでWindowsUpdate関連のサービスはファイアウォールでブロックされます。
弊害としてMicrosoft Storeでダウンロードできなくなる問題があります。( WSL2に使うUbuntuがダウンロードできなくなりました )

# ウィンドウのタイトルバーの×ボタンを無効化
設定から、右上の最小化、最大化、閉じるの3つは、一括で無効化できる。
それぞれ個別に無効化したい場合は、Win32API経由で可能

https://atmarkit.itmedia.co.jp/ait/articles/0404/02/news080.html

また、以下のようなアプリでもロックできる

https://forest.watch.impress.co.jp/docs/serial/okiniiri/366339.html

# SIGINTとSIGBREAKを送信する
以下を参考にさせていただいた。
PIDを引数に取るため若干扱いが面倒だが、SIGINT, SIGBREAKに相当するシグナルを送信できる。
ちなみにSIGTERMを使うのは難しい(Windowsにはない)らしい。

https://tadaoyamaoka.hatenablog.com/entry/2019/07/03/200708

https://github.com/ElyDotDev/windows-kill

# システム音を消す
デバイス接続時や、起動、終了時などのシステム音をならないように設定する。
何のOSを使用しているかバレたくない場合に。
コントロールパネルのサウンド>システム サウンドの変更から設定ウィンドウを開き、サウンド設定の項目を"サウンドなし"に設定する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467051/1035336d-da9d-57b1-cdd0-8790d1c89d44.png)


# ていうかもうEmbedded使え
https://ja.wikipedia.org/wiki/Windows_Embedded