C# で ManagementObject を使用して、多数のプログラムを自動的にアンインストールするプログラムを作成しました。一部のプログラムがコンピューターを自動的に再起動し、プログラムの目的を無効にすることを除いて、正常に動作しています。すべてのアンインストールと再起動が完了するまで待機させる方法はありますか?
プログラムを実際にアンインストールする方法は次のとおりです。
static void UninstallProduct(string path)
{
ManagementObject product = new ManagementObject(path);
if ((product != null) && (product.Path.ClassName == "Win32_Product"))
{
Console.WriteLine(
"Uninstalling: "
+ product.GetPropertyValue("Name")
+ "...");
object result = product.InvokeMethod("Uninstall", null);
Console.WriteLine(
"The Uninstall method result is {0}",
result.ToString());
}
}