帮我用vs2022 C#写一个卸载程序
时间: 2023-09-02 20:06:10 浏览: 51
好的,下面是一个简单的卸载程序的示例代码:
```csharp
using System;
using System.Diagnostics;
namespace Uninstaller
{
class Program
{
static void Main(string[] args)
{
// 获取卸载程序的名称
string appName = "MyApp"; // 修改为你需要卸载的程序名称
// 构造卸载命令
string uninstallCommand = String.Format("/x{{UninstallString}}", appName);
// 查找卸载程序的注册表项
string uninstallKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
Microsoft.Win32.RegistryKey uninstallKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(uninstallKeyPath, false);
if (uninstallKey != null)
{
foreach (string subKeyName in uninstallKey.GetSubKeyNames())
{
// 打开卸载程序的注册表项
Microsoft.Win32.RegistryKey subKey = uninstallKey.OpenSubKey(subKeyName, false);
if (subKey != null)
{
// 检查卸载程序的名称是否匹配
object displayName = subKey.GetValue("DisplayName");
if (displayName != null && displayName.ToString().Contains(appName))
{
// 获取卸载程序的命令行
object uninstallString = subKey.GetValue("UninstallString");
if (uninstallString != null)
{
string commandLine = uninstallString.ToString();
commandLine = commandLine.Replace("{GUID}", "");
commandLine = commandLine.Replace("\"", "");
// 执行卸载命令
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", "/c " + commandLine);
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process p = Process.Start(psi);
p.WaitForExit();
Console.WriteLine("Uninstall completed.");
return;
}
}
subKey.Close();
}
}
uninstallKey.Close();
}
Console.WriteLine("Uninstall failed.");
}
}
}
```
注意:需要管理员权限运行程序以执行卸载操作。另外,程序中的 `appName` 变量需要修改为你需要卸载的程序名称。