0

はこのコードを使用しています (これも試しました)レジストリのアンインストール文字列を使用してプログラムをアンインストールするには、最初のリンクのコードにいくつかのエラーがあります。私はそれを修正しようとしていますが、ファイル名に何があり、引数に何があるかを理解するのに苦労しています。私の UninstalString は次のとおりです。

rundll32.exe dfshim.dll、ShArpMaintain ItemMan.Client.application、Culture=neutral、PublicKeyToken=4f1069eb693dc232、processorArchitecture=msil

レジストリのディレクトリは

CurrentUser\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\9e648bbdf5bc3053

私が問題を抱えている部分:

            System.Diagnostics.Process FProcess = new System.Diagnostics.Process();
            FProcess.StartInfo.FileName = "rundll32.exe"; (Dont know if this is right though, but have tried various ways to write the FileName...)
            FProcess.StartInfo.Arguments = "9e648bbdf5bc3053";
            FProcess.StartInfo.UseShellExecute = false;
            FProcess.Start();
            FProcess.WaitForExit();

このビットでは、何も起こりません。私が試した他のすべての方法はエラーをスローします。uninstalString を切り取り/使用してそのプログラムをアンインストールする方法

4

1 に答える 1

1

アンインストール文字列がすべてであり、最初の実行可能ファイルの後のすべてが引数であるため、次のようにする必要があります。

var start_info = new StartInfo() {
    FileName = "rundll32.exe",
    Arguments = "dfshim.dll,ShArpMaintain ItemMan.Client.application, Culture=neutral, PublicKeyToken=4f1069eb693dc232, processorArchitecture=msil",
    UseShellExecute = false
};

Process process = new Process(start_info);

process.Start();
process.WaitForExit();
于 2013-02-06T09:59:51.360 に答える