2013-06-10 3 views
1

Я пытаюсь удалить программу из добавления или удаления программ с помощью сценария AutoIt.Как автоматизировать удаление программы с помощью autoit?

* Не удаляйте, удаляя разделы реестра, удаление. * Я не хочу удалять с помощью деинсталлятора.

я могу открыть «удаление программ» с помощью команды Appwiz.cpl

Однако я не в состоянии признать правильное название программы из списка и ссылаться на деинсталляцию.

Все, что я хочу сделать, это признать мою программу из списка, например «Helloworld», и вызывать удаление.

ответ

3

Вы можете просто просмотреть все соответствующие значения реестра, из которых ваш список удаления в «Добавить или удалить программы» сделан из ... И затем непосредственно извлечь команду, которую вы хотите выполнить. Я показываю его в окне сообщений в этом примере, но вы можете напрямую сравнить DisplayName с «Helloworld», а затем выполнить UninstallString с Run(...). Это то же самое, что и вызывать «Добавить или удалить программы». Это не значит просто удалить ключи реестра. И это не означает, что вы просто запускаете «любой» деинсталлятор, но правильный, чтобы точно удалить эту программу, например, нажав кнопку «Удалить» в appwiz.cpl. Поэтому, чтобы выполнить то, что вы просили в результате, это решение работает отлично. Он не acutally обрабатывать appwiz.cpl и цикл по списку программ ...

$uninstall_path1 = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" 
searchUninstallStrings($uninstall_path1) 
$uninstall_path2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" 
searchUninstallStrings($uninstall_path2) 

Func searchUninstallStrings($uninstall_path) 
    $i = 0 
    While True 
     $i += 1 
     Local $entry = RegEnumKey($uninstall_path, $i) 
     If @error <> 0 Then ExitLoop 
     $regPath = $uninstall_path & "\" & $entry 
     $DisplayName = RegRead($regPath, "DisplayName") 
     If $DisplayName <> "" Then 
      $message = $DisplayName & @CR 
      $UninstallString = RegRead($regPath, "UninstallString") 
      If $UninstallString <> "" Then 
       $message &= "Uninstall: '" & $UninstallString & "'" 
       MsgBox(4096, "SubKey #" & $i & ": " & $entry, $message) 
      EndIf 
     EndIf 
    WEnd 
EndFunc 

удачи!

+1

Я также нашел эту artical, что делает именно то, что я предназначен сделать ... http://www.tech-recipes.com/rx/2947/windows_uninstall_application_command_line/ – RON12345

-1

Я был в состоянии успешно автоматизировать программу удалений с помощью следующей команды, чтобы открыть Программы и функции меню панели управления, за которым следует последовательность клавиш:

Run("C:\Windows\System32\control.exe appwiz.cpl") 
WinWait("Programs and Features") 
WinActivate("Programs and Features") 
Send("ProgramNameHere") 
Send("{Enter}") 
Смежные вопросы