From 0f53c57aed286755bd70f65f6633a7fc6dcc8b49 Mon Sep 17 00:00:00 2001 From: "yongsung1.kim" Date: Fri, 26 Jul 2013 14:58:36 +0900 Subject: [PATCH] [title] Installmanager does not display useless cmd console window [Issue] redmine #10045 --- os_stubs/windows/InstallManager-64.nsi | 111 ++++++++++++++++++--------------- os_stubs/windows/InstallManager.nsi | 107 ++++++++++++++++--------------- 2 files changed, 116 insertions(+), 102 deletions(-) diff --git a/os_stubs/windows/InstallManager-64.nsi b/os_stubs/windows/InstallManager-64.nsi index f22e944..b11f930 100644 --- a/os_stubs/windows/InstallManager-64.nsi +++ b/os_stubs/windows/InstallManager-64.nsi @@ -67,56 +67,63 @@ FunctionEnd !endif ########### +Var ConsoleHandle ; to save console handle + section - ${GetParameters} $R0 - ${GetExePath} $R1 - ${TimeStamp} $0 - SetRegView 64 - - StrCpy $1 "SOFTWARE\JavaSoft\Java Runtime Environment" - StrCpy $2 0 - ReadRegStr $2 HKLM "$1" "CurrentVersion" - StrCmp $2 "" DetectTry2 - ReadRegStr $5 HKLM "$1\$2" "JavaHome" - StrCmp $5 "" DetectTry2 - goto done - - DetectTry2: - ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Development Kit" "CurrentVersion" - StrCmp $2 "" NoJava - ReadRegStr $5 HKLM "SOFTWARE\JavaSoft\Java Development Kit\$2" "JavaHome" - StrCmp $5 "" NoJava done - - done: - StrCpy $2 '-path "$R1"' - StrCpy $INSTDIR "$TEMP\tizensdk_$0" - RMDir /r $INSTDIR - SetOutPath $INSTDIR - SetOverwrite on - File /r "img\*.exe" - File /r "img\*.conf" - File /r "img\*.jar" - DetailPrint "install manager will be executed" - ExecWait '"$INSTDIR\javacheck.exe"' $1 - ${If} $1 != 0 - goto NoEnv - ${EndIf} - ${If} $R0 == "" - Exec "$INSTDIR\InstManager.exe $2" - ${Else} - StrCpy $3 "$2 $R0" - Exec "java -jar $INSTDIR\InstallManager.jar $3" - ${EndIf} - SetAutoClose true - return - - NoEnv: - MessageBox MB_ICONEXCLAMATION "Cannot execute Java even if it was installed. Check environment variables or Java version(over 1.6) please." - SetAutoClose true - return - - NoJava: - MessageBox MB_ICONEXCLAMATION "You must have either a Java Runtime Environment (JRE) or a Java Development Kit (JDK) in version 6 installed on your computer." - SetAutoClose true - return -sectionEnd + ${GetParameters} $R0 + ${GetExePath} $R1 + ${TimeStamp} $0 + SetRegView 64 + + StrCpy $1 "SOFTWARE\JavaSoft\Java Runtime Environment" + StrCpy $2 0 + ReadRegStr $2 HKLM "$1" "CurrentVersion" + StrCmp $2 "" DetectTry2 + ReadRegStr $5 HKLM "$1\$2" "JavaHome" + StrCmp $5 "" DetectTry2 + goto done + +DetectTry2: + ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Development Kit" "CurrentVersion" + StrCmp $2 "" NoJava + ReadRegStr $5 HKLM "SOFTWARE\JavaSoft\Java Development Kit\$2" "JavaHome" + StrCmp $5 "" NoJava done + +done: + StrCpy $2 '-path "$R1"' + StrCpy $INSTDIR "$TEMP\tizensdk_$0" + RMDir /r $INSTDIR + SetOutPath $INSTDIR + SetOverwrite on + File /r "img\*.exe" + File /r "img\*.conf" + File /r "img\*.jar" + DetailPrint "install manager will be executed" + ExecDos::exec '"$INSTDIR\javacheck.exe"' "" "" + Pop $1 + ${If} $1 != 0 + goto NoEnv + ${EndIf} + + ${If} $R0 == "" + Exec "$INSTDIR\InstManager.exe $2" + ${Else} + StrCpy $3 "$2 $R0" + System::Call 'kernel32::GetStdHandle(i -11)i.r0' ;try to get stdout + System::Call 'kernel32::AttachConsole(i -1)i.r1' ;attach to parent console + Exec "java -jar $INSTDIR\InstallManager.jar $3" + ${EndIf} +SetAutoClose true +return + +NoEnv: + MessageBox MB_ICONEXCLAMATION "Cannot execute Java even if it was installed. Check environment variables or Java version(over 1.6) please." +SetAutoClose true +return + +NoJava: + MessageBox MB_ICONEXCLAMATION "You must have either a Java Runtime Environment (JRE) or a Java Development Kit (JDK) in version 6 installed on your computer." +SetAutoClose true +return + +sectionEnd \ No newline at end of file diff --git a/os_stubs/windows/InstallManager.nsi b/os_stubs/windows/InstallManager.nsi index 342804a..09a0e71 100644 --- a/os_stubs/windows/InstallManager.nsi +++ b/os_stubs/windows/InstallManager.nsi @@ -67,55 +67,62 @@ FunctionEnd !endif ########### +Var ConsoleHandle ; to save console handle + section - ${GetParameters} $R0 - ${GetExePath} $R1 - ${TimeStamp} $0 - - StrCpy $1 "SOFTWARE\JavaSoft\Java Runtime Environment" - StrCpy $2 0 - ReadRegStr $2 HKLM "$1" "CurrentVersion" - StrCmp $2 "" DetectTry2 - ReadRegStr $5 HKLM "$1\$2" "JavaHome" - StrCmp $5 "" DetectTry2 - goto done - - DetectTry2: - ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Development Kit" "CurrentVersion" - StrCmp $2 "" NoJava - ReadRegStr $5 HKLM "SOFTWARE\JavaSoft\Java Development Kit\$2" "JavaHome" - StrCmp $5 "" NoJava done - - done: - StrCpy $2 '-path "$R1"' - StrCpy $INSTDIR "$TEMP\tizensdk_$0" - RMDir /r $INSTDIR - SetOutPath $INSTDIR - SetOverwrite on - File /r "img\*.exe" - File /r "img\*.conf" - File /r "img\*.jar" - DetailPrint "install manager will be executed" - ExecWait '"$INSTDIR\javacheck.exe"' $1 - ${If} $1 != 0 - goto NoEnv - ${EndIf} - ${If} $R0 == "" - Exec "$INSTDIR\InstManager.exe $2" - ${Else} - StrCpy $3 "$2 $R0" - Exec "java -jar $INSTDIR\InstallManager.jar $3" - ${EndIf} - SetAutoClose true - return - - NoEnv: - MessageBox MB_ICONEXCLAMATION "Cannot execute Java even if it was installed. Check environment variables or Java version(over 1.6) please." - SetAutoClose true - return - - NoJava: - MessageBox MB_ICONEXCLAMATION "You must have either a Java Runtime Environment (JRE) or a Java Development Kit (JDK) in version 6 installed on your computer." - SetAutoClose true - return + ${GetParameters} $R0 + ${GetExePath} $R1 + ${TimeStamp} $0 + + StrCpy $1 "SOFTWARE\JavaSoft\Java Runtime Environment" + StrCpy $2 0 + ReadRegStr $2 HKLM "$1" "CurrentVersion" + StrCmp $2 "" DetectTry2 + ReadRegStr $5 HKLM "$1\$2" "JavaHome" + StrCmp $5 "" DetectTry2 + goto done + +DetectTry2: + ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Development Kit" "CurrentVersion" + StrCmp $2 "" NoJava + ReadRegStr $5 HKLM "SOFTWARE\JavaSoft\Java Development Kit\$2" "JavaHome" + StrCmp $5 "" NoJava done + +done: + StrCpy $2 '-path "$R1"' + StrCpy $INSTDIR "$TEMP\tizensdk_$0" + RMDir /r $INSTDIR + SetOutPath $INSTDIR + SetOverwrite on + File /r "img\*.exe" + File /r "img\*.conf" + File /r "img\*.jar" + DetailPrint "install manager will be executed" + ExecDos::exec '"$INSTDIR\javacheck.exe"' "" "" + Pop $1 + ${If} $1 != 0 + goto NoEnv + ${EndIf} + + ${If} $R0 == "" + Exec "$INSTDIR\InstManager.exe $2" + ${Else} + StrCpy $3 "$2 $R0" + System::Call 'kernel32::GetStdHandle(i -11)i.r0' ;try to get stdout + System::Call 'kernel32::AttachConsole(i -1)i.r1' ;attach to parent console + Exec "java -jar $INSTDIR\InstallManager.jar $3" + ${EndIf} +SetAutoClose true +return + +NoEnv: + MessageBox MB_ICONEXCLAMATION "Cannot execute Java even if it was installed. Check environment variables or Java version(over 1.6) please." +SetAutoClose true +return + +NoJava: + MessageBox MB_ICONEXCLAMATION "You must have either a Java Runtime Environment (JRE) or a Java Development Kit (JDK) in version 6 installed on your computer." +SetAutoClose true +return + sectionEnd -- 2.7.4