web-dev-qa-db-ja.com

指定されたモジュールが見つかりませんでした(アンインストール)

Windows 7 x64エディションを使用していますが、古いプログラム(x86コードベースを使用)をインストールすると、プログラムや機能を使用してアンインストールしようとすると、次のエラーが発生することがあります。

RunDLL  
There was a problem starting C:\Program  
The specified module could not be found

アンインストーラーがパスを見つけられないと思いますが、どうすれば修正できますか?サードパーティのソリューションの使用を提案しないでください。これを引き起こした原因と修正方法を知りたいだけです。

4
TwirlMandarin

これは、プログラムのアンインストーラーがProgram Filesにあるが、レジストリーに場所を格納するときにインストーラーがパスを引用符で囲むことができない場合に発生する可能性があります。その結果、Windowsは(たとえば)C:\Program Files\ProgramName\uninstall.exeを実行しようとしますが、引用符がないと、実行可能ファイル名としてC:\Programが、コマンドライン引数としてFiles\ProgramName\uninstall.exeが表示されます。

これを修正するには、次の手順を試してください。

  • regedit.exeを開きます
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstallに移動します
  • アンインストールしようとしているプログラムに対応するキーを見つけます。ほとんどのプログラムはおそらくGUIDで一覧表示されるため、すべてをステップスルーするか、[編集]-> [検索]に移動してプログラムを検索します。
  • 右側のペインで、ninstallStringという値を探します。それをダブルクリックして、パスを引用符で囲みます。ただし、パス(C:\...から...exeへ)だけであり、それに続く引数はありません。疑わしい場合は、現在の値をここに投稿してください。
  • プログラムを再度アンインストールしてください。それでも機能しない場合は、元の値ninstallStringをここに投稿してください。
  • オプション:アンインストーラー情報を正しく格納する更新バージョンについては、プログラムの作成者のWebサイトを確認してください。

理論的には、プログラムのアンインストーラーを(.exeであり、見つけることができると仮定して)C:\にコピーし、名前をProgram.exeに変更することもできますが、それでも機能するかどうかはわかりません。 ninstallPathの修正バージョンを取得して、C:\Program.batというバッチファイルに保存することもできます。これはおそらく機能しますが、それでも上記よりも面倒な解決策です。完全を期すために、これらのメソッドのみをリストします。

4
Indrek