удалить строку - PullRequest
       72

удалить строку

0 голосов
/ 29 мая 2010

Я занимаюсь разработкой настольного приложения с использованием 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}

My JetAudio UninstallString, RunDll32 Пример

rundll32 C: \ PROGRA ~ 1 \ ОБЩИЙ ~ 1 \ ИНСТАЛ ~ 1 \ двигатель \ 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 Ответ

0 голосов
/ 30 мая 2010

Я тоже выложил эту проблему на форуме MSDN и получил ответ. Всем, кто нуждается в помощи, перейдите по ссылке ниже

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/207c145a-60ff-4d68-878d-d0139b2b274c

Спасибо

...