問題タブ [uninstallstring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
registry - 方法: UninstallString reg エントリを解析する
私のマシンにインストールされているプログラムのリストです(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
少なくともそれらのほとんど)。そこには、プログラムをアンインストールするために実行する必要があるものを含む UninstallString という文字列値があります。
すべてのインストーラーが同じ種類の情報を書き込むわけではありませんが、Windows はその文字列を解析してアンインストーラーを実行する方法を知っています。
私の質問は次のとおりです。その文字列を解析する方法を知っている人はいますか?つまり、得られる可能性のある値は何ですか? そうでない場合、そのような情報はどこで見つけることができますか? 私は運が悪かったので、適切な用語を探していないと思います。
wix - WIXで生成されたMSI用のカスタムアンインストーラー
WIXスクリプトから生成されているMSIがあります。
私の質問はこの質問に似ています。
デフォルトのMSIアンインストーラーを使用する代わりに、カスタムアンインストーラーを作成したいと思います。
PublishProductの後、またはInstallFinalizeの前に実行されるカスタムアクションを追加することを考えています。このアクションは、使用するアンインストール文字列を指定するレジストリエントリを変更します。
SMSなどとの互換性は気になりません。
この方法についてどう思いますか?
.net - アンインストール文字列
プログラムの追加/削除と同様に、VB.NET を使用してデスクトップ ベースのアプリケーションを開発しています。アンインストール機能の作業を開始するまで、すべてが正常に機能していました。
今私がやっていることは、レジストリから特定のアプリケーションのアンインストール文字列を取得し、System.Diagnostics.Process を使用して UninstallString を実行することです。
後者は、ストレートファイルパスでのみ機能することがわかりました。つまり、次のようなコマンドライン引数がありません。
C:\program files\someApp\uninstall.exe
マシンにインストールされているすべてのアプリケーションのすべての UninstallStrings のリストを作成します。MSIを使用してインストールされたアプリケーションのようなものはほとんど見つかりませんでした.rundll32を使用したものもあれば、次のようなコマンド引数を持つストレートファイルパスを使用したものもほとんどありませんでした:
My Silverlight SDK UninstallString、MSI の例
MsiExec.exe /X{2012098D-EEE9-4769-8DD3-B038050854D4}
私の JetAudio UninstallString、RunDll32 の例
RunDll32 C:\PROGRA~1\COMMON~1\INSTAL~1\engine\6\INTEL3~1\Ctor.dll,LaunchSetup "C:\Program Files\InstallShield インストール情報{91F34319-08DE-457A-99C0-0BCDFAC145B9} \Setup.exe" -l0x9
My Google Chrome UninstallString、コマンド引数付きのストレート ファイル パスの例
"C:\Program Files\Google\Chrome\Application\5.0.375.55\Installer\setup.exe" -アンインストール
上記のコードは、これらに対しては機能しません。私はいくつかの文字列解析を行い、UninstallString から 2 つを分離しました。1 つはファイル名で、もう 1 つは引数です。MSI の場合と同様に、ファイル名は MSIEXEC.EXE で、引数は文字列の残りの部分になります。RunDLL32 の場合と同じで、コマンド引数を使用したストレート ファイル パスの場合も同じです。
今私が直面しているのは、2、3 日ごとに、このタイプの unistallstring も機能していないことを知るようになるということです。そして、おそらくabc C:\program files\someapp.exe -dddという新しいタイプであるため、それが機能しないのはなぜですか?それも解析してください。
文字列を解析するのではなく、それを行うより良い方法はありますか。
c# - C# を使用して UninstallString を実行する
プロセスを使用してuninstallStringを実行すると問題が発生します。すべての場合に機能するとは限りません。どのような場合でも実行される一般的な手順が必要です。
- 私のアイデアの1つは、アンインストール文字列を解析することでした
コード:
- 私の2番目のアイデアは:
コード:
それでも、すべてのケースをカバーするわけではありません。
すべてのケースの一般的な解決策は何ですか?
c# - C# で System.Diagnostic.Process とその UninstallString を使用してプログラムをアンインストールする
私はこのコードを使用しています (これも試しました)レジストリのアンインストール文字列を使用してプログラムをアンインストールするには、最初のリンクのコードにいくつかのエラーがあります。私はそれを修正しようとしていますが、ファイル名に何があり、引数に何があるかを理解するのに苦労しています。私の UninstalString は次のとおりです。
rundll32.exe dfshim.dll、ShArpMaintain ItemMan.Client.application、Culture=neutral、PublicKeyToken=4f1069eb693dc232、processorArchitecture=msil
レジストリのディレクトリは
CurrentUser\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\9e648bbdf5bc3053
私が問題を抱えている部分:
このビットでは、何も起こりません。私が試した他のすべての方法はエラーをスローします。uninstalString を切り取り/使用してそのプログラムをアンインストールする方法
c# - レジストリからの文字列のアンインストールは常に同じですか?
ここで少しだけ安心したい。とりわけ、プログラムの最新バージョンをアンインストールして再インストールする基本的な C# プログラムを作成しています (この機能をプログラム自体に組み込むことはできません)。私がやっている方法は次のとおりです。
コマンドプロンプトプロセスで。いくつか質問があります。
- 明らかに、あなたはプログラムの履歴を知りません (私も本当のことを言うつもりはありません) が、そのアンインストール文字列は通常、すべてのバージョンで毎回同じですか? 変わりますか?
- アンインストール文字列が誤って別のコンピューター上の別のプログラムの文字列になる可能性はありますか? 他のものをアンインストールしたくありません。
基本的に、これが安全かどうかを知りたいだけです。そうでない場合、またはプログラムでこれを行うより良い方法がある場合は、お知らせください。ありがとう!
vbscript - VBScript を使用してサイレント アンインストールのスクリプトを作成しようとしています
一部のアプリケーションをアンインストールするスクリプトを作成しようとしています。スクリプトは機能していますが、すべてのプログラムを実行するとプロンプトが表示されます。
アプリケーションが「/S」パラメーターをサポートしているため、サイレント アンインストールを実行できることがわかっています。コマンド プロンプトから uninstall /s コマンドを実行すると、正常に動作します。プロンプトは表示されず、アンインストールされるだけです。
私の問題は、スクリプトで /S パラメータを呼び出すことです。どうやっても、構文エラーが発生し続けます。これは私だけであり、引用符と括弧を理解していないことはわかっていますが、それを機能させるのにうんざりしています。問題は、すべてのパスにスペースが含まれているという事実によって悪化します。これにより、これらのダンクォートがさらに必要になります。うまくいけば、誰かが私が間違っていることを教えてくれます。
また、私は VBS で何をしているのか本当にわからないので、スクリプトの醜さを見逃していただければ幸いです。:-)
「true」パラメーターについても質問があります。これは、次の操作に進む前に現在の操作を完了する必要があることを示していると理解しています。しかし、アンインストールはすべて同時に実行されているようです。「true」パラメータを正しく理解していますか?
サイレント アンインストールのコマンドは次のとおりです。
C:\Program Files\Juniper Networks\Network Connect 7.1.9\uninstall.exe /S
「/S」パラメーターを使用しないスクリプトを次に示します。
c# - GUID を使用してソフトウェアをサイレント アンインストールする
UAC ウィンドウのみを表示するソフトウェアをアンインストールしたいのですが、その後は UI が表示されません。msiexec.exe を使用してアンインストールしています。しかし、どうすれば静かにできるのでしょうか....
サイレントモードでどのようにできるか