Windows標準機能で既知のファイル名のアプリを起動阻止する方法
隠されたアプリケーション互換モード
Windows 2000以降にはアプリケーション互換モードというのがあって、Windows 95や 98などで動作していたアプリケーションがちゃんと動くようにレイヤーを作成して擬似的なサンドボックス上で実行する機能があります。
しかし、この機能、Windows 95と98とNT4SP5と2000SP4、
Windows XP (SP2)、Windows Server 2003 (SP1)といった、限定されたOSバージョンしか選べないし、ある程度内部解析して、勝手に設定を変更してしまう所があったりで使いにくかったりします。
Windowsの互換性テクノロジの仕組み(後編) - @IT
application compatibility toolkit というのもありますが、所詮この機能を利用しているに過ぎませんし、この機能は、Windows 2000の場合はSP2以降でないと利用できない上に設定が必要だとか、色々面倒だったりします。
fcwinとXP互換モード
以前記事にも書きましたが、Windows 2000SP1以前から搭載されている、もっと強力な互換機能が隠し機能として搭載されています。
・Windows 3.1 互換モードもある。
・Build番号、OSバージョン、サービスパックの文字列の指定まで可能(つまり、Windows 2000でWindows NT6.2(Windows 8)として実行させることも可能)
・原則ファイル名で登録するが、リソースイメージでどのバージョンで実行するか設定することもできる。(KDWでは複数のリソース登録には未対応)
アプリケーションの実行を阻止する方法
どうするかというと、実行させたくないアプリケーションを無理やり、『Windows 3.1モード』で実行するように強制するのです。
たとえば、Windows 上で設定できる アプリケーション互換モードで Windows 95を設定しても、SkypeSetup.exe は実行できてしまいますが、この機能を使うと、阻止することができる仕組みです。
直接実行してもこのとおり
簡単に設定できるのが、 KDW同梱の fcwin2k.exe で
実行ファイルを選んで Windows 3.1を選んで「互換保存」するだけです。
ただし、Windows Vista 以降では、 マニフェストが直接参照されるためこの機能が使えません。
Comments