web-dev-qa-db-ja.com

アプリをWindows8と「互換性がある」ように強制する

適切なバージョンのWindowsを実行しているかどうかを実行時にチェックするプログラムはたくさんあります(特に私にとっては、Brother Printerソフトウェアのアンインストールプログラム)。

Windows 8を使用していると、インストーラーは、Windowsのバージョンが間違っているため、実行されないことを通知します。ただし、ソフトウェアは正常にインストールされ、正常に実行されるため、理論的にはアンインストールできるはずです。

Windows 7に設定された互換モードでは、うまくいきません。

Windows 7を使用していることをインストーラーに伝える方法はありますか?

あなたのアイデアと提案をありがとう:)。

編集:これは特定のエラーコードです:IS015- GetOsVersion-1

1
cmplieger

互換モードを間違ったものに設定している可能性があります。以前は、インストーラーはソフトウェアのインストールやアンインストールを実行する単一の単純な実行可能ファイルでしたが、最近では、インストーラーは複雑なフレームワーク(Windowsインストーラー、InstallShieldなど)です。そのため、何が起こっているのでしょうか。互換性モードを設定したアンインストール実行可能ファイルが、問題の原因となっている別のファイルを実行している可能性があるということです。

あなたがする必要があるのはあなたに間違ったOSエラーを与えている実際の実行可能ファイルを見つけてそれを設定することですファイルの互換モード。これは、使用されているインストーラーの方法に応じて、簡単な場合と簡単でない場合があります。

手始めに、単純なexe⇨exeアーキテクチャを想定しましょう。

  1. アンインストーラーを再実行します
  2. エラーが発生した場合は、タスクマネージャーを起動します(Ctrl+Shfit+Esc
  3. アプリケーションタブに切り替えます
  4. リストからインストーラーを見つけます
  5. それを右クリックして、プロセスに移動を選択します

    (どのファイルが表示されていますか?修正/ハッキングが難しくなるため、msiexec.exeではなく特定のファイルであることが望ましいです。)

  6. プロセス名を右クリックして、プロパティを選択します
  7. 互換性タブで互換性設定を設定します
  8. ユニスタンタラーを再実行します

アプリケーションタブにアンインストーラーのウィンドウが表示されない場合は、 Process Explorer のような別のツールが必要になります。エラーが発生した実行可能ファイル(明るい面では、ProcExpを使用すると、プロセスをツリーに表示することで、プロセスのチェーンを簡単に確認できます)。

問題のプログラムがWindowsインストーラーを使用していることが判明した場合は、その.msiファイルを OSの依存関係を編集 に変更する必要があります。 Microsoftのツール Orca はこれに役立ちます。

6
Synetech