設定方法
Windowsで、特定のファイル名のプログラムを動作させなくする方法です。
まず、実行するとすぐに何もせずに終了するプログラムを入手します。
このプログラムは、コマンドライン引数に何か指定(具体的には /zオプションを指定)した場合でも、何もしないことが必要です。
加えて、できれば、実行時にウィンドウが出たり、コマンドプロンプトの黒い画面が出ない方がいいです。
例えば、
GitHub – myfreeer/nop: a windows exe that does nothing without black cmd window or anything else
の
Releases · myfreeer/nop · GitHub
からダウンロードできる、nop_continue_x64.exe を入手します。
ここでは、以降、nop_continue_x64.exe で説明します。
入手した nop_continue_x64.exe を、パスの通っているところ(C:\Windows 等)に置きます。
続けて、次の内容で、レジストリファイル(拡張子.reg)を作成します。
XXXXXXX.exe の箇所は、動作させないようにしたいプログラムのファイル名を指定してください。
注意:特定のパスにあるプログラムの指定はできません。指定は、ファイル名でしかできず、どこのパスにあってもここで指定したファイル名が一致したら動作しなくなります
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\XXXXXXX.exe]
"debugger"="nop_continue_x64.exe"
作成したら、ダブルクリックで実行してください。
ユーザーアカウント制御の画面や、”続行しますか?”のダイアログが出たら、「はい」を押してください。
これで、指定したファイル名のプログラムを実行しようとしても、何も起こりません。
しくみ
正確には、特定のファイル名のプログラムを動作させないのではなく、代わりに何もせずにすぐ終了するプログラムを起動させています。
下記記事で紹介した、Windowsで特定のプログラムが実行されようとする際に、代わりに指定のプログラムを実行させるレジストリ設定を使っています。
あるプログラムが実行されようとする際に、代わりに指定のプログラムを実行させるレジストリ – パソコン鳥のブログ
GoogleChrome の Software Reporter Tool をバージョンアップでも 半永久的に実行させない – パソコン鳥のブログ
このレジストリ設定で、[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\XXX.exe] で指定した XXX.exe が起動しようとした際に、“debugger”=”YYY” で指定したプログラム YYY が代わりに起動します。
今回の例では、”debugger”=”nop_continue_x64.exe” としていますので、nop_continue_x64.exe が起動します。
この時、プログラム YYYに、引数として、XXX.exe のパスが指定されてきます。
従って、/z を引数にとるプログラムを YYYに指定しないようにしてください。
上記の過去記事では、すぐ終了するプログラムとして、Windows標準で存在している HOSTNAME.exe を使っていましたが、 HOSTNAME.exe は起動時に一瞬コマンドプロンプトの黒い画面が出るので、今回の記事では nop_continue_x64.exe を使うようにしています。
コメント