Удалить строку
Я занимаюсь разработкой настольного приложения с использованием VB.NET, аналогичного программе добавления / удаления. все работало нормально, пока я не начал работать над функцией удаления.
Теперь, что я делаю, так это то, что я получаю строку удаления конкретного приложения из реестра и использую System.Diagnostics.Process для запуска UninstallString.
Dim proc As New Process()
proc.StartInfo.FileName =UninstallString
proc.Start()
proc.WaitForExit()
proc.Close()
Последний я обнаружил, что он работает только для прямых путей к файлам, я имею в виду без аргумента командной строки, как:
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
Мой Google Chrome UninstallString, прямой путь к файлу с примером аргумента команды
"C:\Program Files\Google\Chrome\Application\5.0.375.55\Installer\setup.exe" -uninstall
Код, который я упоминал выше, не работает для них. я сделал какой-то анализ строки, отделил две вещи от UninstallString, одна - это Имя файла, а другая - Аргументы. как и для MSI, имя файла - MSIEXEC.EXE, а аргумент - это остальная часть строки, то же самое для RunDLL32, то же самое для прямого пути к файлу с аргументом команды.
Теперь я сталкиваюсь с тем, что через каждые 2 или 3 дня я узнаю, что этот тип unistallstring также не работает. и почему это не работает, потому что это новый тип, может быть, abc C:\program files\someapp.exe -ddd, так что анализируйте его тоже.
Есть ли лучший способ сделать это, чем анализ строки.
1 ответ
Я тоже выложил этот же вопрос на форуме MSDN и получил ответ. Всем, кто нуждается в помощи, перейдите по ссылке ниже
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/207c145a-60ff-4d68-878d-d0139b2b274c
Спасибо