2012-10-25 2 views
0

여기에 넣는 방법을 잘 모르겠습니다. 최선을 다하겠습니다. 제발 도와주세요설치 프로그램을 종료 한 후에도 제거가 계속 실행 중입니다.

예상대로 설치하고 제거하는 패치 설치 관리자가 있습니다. 그러나 프로그램 파일에서 패치를 제거한 후에 다른 소프트웨어를 제거하려고했습니다. 모두 제거 프로그램이 제거되는 것을 알리는 팝업 메시지가 나타납니다.

나는 내 패치를 제거하는 마지막 단계에서 .exe 파일을 실행하여 프로세스를 시작하려고합니다. 내 설치 제거 프로그램은 종료하고 싶지 않은 프로세스가 종료 될 때까지 기다립니다.

다른 옵션은 사용자가 패치를 제거한 후 재부팅하도록 강제하는 것입니다.

/ASYNC와 함께 Exec, ExecDos 및 ExecCmd를 시도했지만 여전히 동일한 문제가 발생합니다.

ExecShell open "$INSTDIR\system\teven.exe" 

1 2

ExecDos::exec /NOUNLOAD /ASYNC "$INSTDIR\system\teven.exe" "" 
Pop $0 
ExecDos::isdone /NOUNLOAD $0 

이 사람이 나에게이 문제를 해결하는 데 도움이 될 수 있습니다 시도하십시오. teven.exe를 시작하고 실행중인 상태로두고 제거 프로그램이 teven.exe를 종료하지 못하게하려면 어떻게해야합니까?

답변

1

제거 프로그램이 완료된 후에 다른 작업을 수행하려는 경우 제거 프로그램을 기다려야합니다. 프로그램 추가/제거에서 제거 할 때 Windows는 제거 프로그램이 시작한 모든 하위 프로세스에 대한 대기를 강제합니다 ...

기다리고 싶다면/ASYNC를 사용하고있는 이유는 무엇입니까? (편집 : 기다리고 싶지 않아요?) ExecDos::isdone 기다리고 싶지 않다면 그냥 확인하고 기다리고 싶다면 ExecDos::wait을 사용하십시오.

고급 옵션을 사용하지 않는 당신은 정말 타사 플러그인을 사용할 필요가 없습니다 다음 표준 입력의 입력이 필요하지 않은 경우 : teven이 콘솔 응용 프로그램 인 경우

을하고 콘솔 창을 숨기려면 (그리고 대기) : 그렇지 않으면

nsExec::Exec '"$INSTDIR\system\teven.exe"' 

:

ExecWait '"$INSTDIR\system\teven.exe"' 

당신이 실제로 당신은 그냥 Exec을 사용할 수 있습니다 기다리고 싶지 않지만 Windows가 대기 anywa을 강제 할 수있는 경우 y를 제거 할 때 ...

+0

Ohoo !! 내가 추가/제거, 창 강제로 제거에서 제거하는 경우 알지 못합니다. 추가/제거가 제거가 완료되었다고 생각하도록 자식 프로세스와 별도로 프로세스를 시작하는 방법이 있습니까? – Vivek

+1

아니요, 실제로는 일부 오래된 (InstallShield?) 설치 제거 프로그램을 수정하는 것입니다. http://nsis.sourceforge.net/Escape_ARP_Job_With_New_Process가 있지만 Windows의 모든 버전에서 작동하는지는 알 수 없습니다 ... – Anders

관련 문제