"프로그램 추가 또는 제거"의 제거 목록이 만들어진 모든 해당 레지스트리 값을 루프 할 수 있습니다 ... 그리고 실행하려는 명령을 직접 추출하십시오. 이 예제에서는 메시지 상자에 표시하지만, 디스플레이 이름을 "Helloworld"과 직접 비교 한 다음 UninstallString을 Run(...)
으로 실행할 수 있습니다. 이는 "프로그램 추가 또는 제거"가 호출하는 것과 완전히 동일합니다. 단순히 레지스트리 키를 제거한다는 의미는 아닙니다. 그리고 그것은 "any"제거 프로그램을 실행하는 것을 의미하는 것이 아니라, appwiz.cpl에서 "제거"버튼을 클릭하는 것과 같은 바로 그 프로그램을 정확하게 제거하는 데 필요한 적절한 제거 프로그램을 호출하는 것을 의미합니다. 결과적으로 요청한 것을 수행하기 위해이 솔루션은 잘 작동합니다. 그것은 acutally ... 프로그램의 목록을
$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
행운을 appwiz.cpl을 사이클을 처리하지 않습니다!
가 나는 또한 내가 의도 정확하게 수행이 artical 발견 할 일 ... http://www.tech-recipes.com/rx/2947/windows_uninstall_application_command_line/ – RON12345