Browse Source

Fuck you SVN & gradleification started, Done: iZpl, iZsetup, toolKit

LH 10 năm trước cách đây
mục cha
commit
31e2105050
100 tập tin đã thay đổi với 4741 bổ sung55 xóa
  1. 38 0
      .gitignore
  2. 95 0
      IZSetup/build.gradle
  3. 10 0
      IZSetup/distPackagerBase/64b/bundledata/bundle.izmeta
  4. 16 0
      IZSetup/distPackagerBase/64b/bundledata/core.iZsetup
  5. 26 0
      IZSetup/distPackagerBase/64b/bundledata/default.izpackage
  6. 16 0
      IZSetup/distPackagerBase/64b/bundledata/demo.iZsetup
  7. 13 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/editallviaNPP.reg
  8. 36 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/extensions.izsetup
  9. BIN
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/fext_refresh.exe
  10. 26 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izbundle.reg
  11. 53 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izinstall.queue
  12. 25 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izpackage.reg
  13. 24 0
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izsetup.reg
  14. BIN
      IZSetup/distPackagerBase/64b/bundledata/extensionPackage/tempo.reg
  15. 15 0
      IZSetup/distPackagerBase/64b/demopackage/addons.izsetup
  16. 10 0
      IZSetup/distPackagerBase/64b/demopackage/bundle.izmeta
  17. BIN
      IZSetup/distPackagerBase/64b/demopackage/default.izbundle
  18. 64 0
      IZSetup/distPackagerBase/64b/demopackage/default.izpackage
  19. 33 0
      IZSetup/distPackagerBase/64b/demopackage/games.izsetup
  20. 33 0
      IZSetup/distPackagerBase/64b/demopackage/gamestls.izsetup
  21. 15 0
      IZSetup/distPackagerBase/64b/demopackage/pack001.izsetup
  22. 15 0
      IZSetup/distPackagerBase/64b/demopackage/xprecover.izsetup
  23. 4 0
      IZSetup/distPackagerBase/64b/demosfxcomm.txt
  24. 5 0
      IZSetup/distPackagerBase/64b/distsfxcomm.txt
  25. 13 0
      IZSetup/distPackagerBase/64b/editallviaNPP.txt
  26. BIN
      IZSetup/distPackagerBase/64b/engine.exex
  27. BIN
      IZSetup/distPackagerBase/64b/engine/ICE_JNIRegistry.dll
  28. 32 0
      IZSetup/distPackagerBase/64b/engine/README.TXT
  29. 3 0
      IZSetup/distPackagerBase/64b/engine/iZlaunch.cfg
  30. BIN
      IZSetup/distPackagerBase/64b/engine/izBundle.ico
  31. BIN
      IZSetup/distPackagerBase/64b/engine/izpackage.ico
  32. BIN
      IZSetup/distPackagerBase/64b/engine/izsetup.ico
  33. BIN
      IZSetup/distPackagerBase/64b/helper/fext-1.reg
  34. BIN
      IZSetup/distPackagerBase/64b/helper/fext-2.reg
  35. BIN
      IZSetup/distPackagerBase/64b/izBundle.ico
  36. BIN
      IZSetup/distPackagerBase/64b/izpackage.ico
  37. BIN
      IZSetup/distPackagerBase/64b/izsetup.ico
  38. BIN
      IZSetup/distPackagerBase/64b/izsetup.izbundle_bak
  39. 43 0
      IZSetup/distPackagerBase/64b/makedist.sh
  40. BIN
      IZSetup/distPackagerBase/64b/predist/ICE_JNIRegistry.dll
  41. 4 0
      IZSetup/distPackagerBase/64b/predist/bootstrap.bat
  42. BIN
      IZSetup/distPackagerBase/64b/predist/izsetup.izbundle
  43. 1 0
      IZSetup/distPackagerBase/64b/predist/sfx.bat
  44. 5 0
      IZSetup/distPackagerBase/64b/sfxcomm.txt
  45. BIN
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/ICE_JNIRegistry.dll
  46. 15 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/addons.izsetup
  47. 74 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/build.xml
  48. 10 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/bundle.izmeta
  49. BIN
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/default.izbundle
  50. 64 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/default.izpackage
  51. 33 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/games.izsetup
  52. 33 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/gamestls.izsetup
  53. 3 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/manifest.mf
  54. 15 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/pack001.izsetup
  55. 173 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/BundleVerifyGui.form
  56. 319 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/BundleVerifyGui.java
  57. 137 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallManager.java
  58. 132 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallProgressGui.form
  59. 359 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallProgressGui.java
  60. 167 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSel.java
  61. 115 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSelectionGUI.form
  62. 158 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSelectionGUI.java
  63. 278 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackManager.java
  64. 199 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackagerGUI.form
  65. 374 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackagerGUI.java
  66. 142 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/SelectionGUI.form
  67. 237 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/SelectionGUI.java
  68. 20 20
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/Tester.java
  69. 9 9
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/bundle.izmeta
  70. 14 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/izBundleReadIn.java
  71. 399 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/izsetupReader.java
  72. 64 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/tempalte.izpackage
  73. 26 26
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/template.izsetup
  74. 15 0
      IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/xprecover.izsetup
  75. 10 0
      IZSetup/distPackagerBase/bundledata/bundle.izmeta
  76. 16 0
      IZSetup/distPackagerBase/bundledata/core.iZsetup
  77. 26 0
      IZSetup/distPackagerBase/bundledata/default.izpackage
  78. 16 0
      IZSetup/distPackagerBase/bundledata/demo.iZsetup
  79. 13 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/editallviaNPP.reg
  80. 36 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/extensions.izsetup
  81. BIN
      IZSetup/distPackagerBase/bundledata/extensionPackage/fext_refresh.exe
  82. 26 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/izbundle.reg
  83. 53 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/izinstall.queue
  84. 25 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/izpackage.reg
  85. 24 0
      IZSetup/distPackagerBase/bundledata/extensionPackage/izsetup.reg
  86. BIN
      IZSetup/distPackagerBase/bundledata/extensionPackage/tempo.reg
  87. 15 0
      IZSetup/distPackagerBase/demopackage/addons.izsetup
  88. 10 0
      IZSetup/distPackagerBase/demopackage/bundle.izmeta
  89. BIN
      IZSetup/distPackagerBase/demopackage/default.izbundle
  90. 64 0
      IZSetup/distPackagerBase/demopackage/default.izpackage
  91. 33 0
      IZSetup/distPackagerBase/demopackage/games.izsetup
  92. 33 0
      IZSetup/distPackagerBase/demopackage/gamestls.izsetup
  93. 15 0
      IZSetup/distPackagerBase/demopackage/pack001.izsetup
  94. 15 0
      IZSetup/distPackagerBase/demopackage/xprecover.izsetup
  95. 4 0
      IZSetup/distPackagerBase/demosfxcomm.txt
  96. 5 0
      IZSetup/distPackagerBase/distsfxcomm.txt
  97. 13 0
      IZSetup/distPackagerBase/editallviaNPP.txt
  98. BIN
      IZSetup/distPackagerBase/engine.exex
  99. BIN
      IZSetup/distPackagerBase/engine/ICE_JNIRegistry.dll
  100. 32 0
      IZSetup/distPackagerBase/engine/README.TXT

+ 38 - 0
.gitignore

@@ -0,0 +1,38 @@
+.gradle
+build/
+# Ignore Gradle GUI config
+gradle-app.setting
+
+*.class
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+# Package Files #
+*.jar
+*.war
+*.ear
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+nbproject/
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+nbactions.xml
+nb-configuration.xml
+
+# Windows image file caches
+Thumbs.db
+ehthumbs.db
+# Folder config file
+Desktop.ini
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+# Windows Installer files
+*.cab
+*.msi
+*.msm
+*.msp
+# Windows shortcuts
+*.lnk
+/.nb-gradle/private/

+ 95 - 0
IZSetup/build.gradle

@@ -0,0 +1,95 @@
+defaultTasks 'distZip'
+
+apply plugin: 'java'
+apply plugin: 'application'
+
+sourceCompatibility = 1.8
+version = 'SNAPSHOT'
+
+
+task fatJar(type: Jar) {
+		manifest{
+		attributes 'Implementation-Title': 'iZSetup',
+					'Implementation-Version': 'SNAPSHOT',
+					'Main-Class': 'de.nplusc.izc.InstallPak.Main'
+					
+	}
+    baseName = project.name + '-all'
+    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
+    with jar
+}
+
+task izsetupDist(type: IZSetupPkgTask, dependsOn: 'makeDistC')
+
+class IZSetupPkgTask extends DefaultTask {
+    @TaskAction
+    def work() {
+        println 'iZsetupCustomPackaging finished'
+    }
+}
+mainClassName = 'de.nplusc.izc.InstallPak.Main'
+
+
+
+task makeDistA(type:Exec, dependsOn: 'fatJar') {
+  File jarschiv = file(tasks.fatJar.archivePath)
+  File WrkDir = file('distPackagerBase/')
+  commandLine 'java', '-jar', jarschiv.getAbsolutePath() , '--makedist','0' , WrkDir.getAbsolutePath() , jarschiv.getAbsolutePath()
+}
+
+makeDistA.inputs.file file(tasks.fatJar.archivePath)
+makeDistA.outputs.file file('distPackagerBase/dist/iZsetup_setup.jar')
+
+task makeDistB(type: Copy, dependsOn: makeDistA) {
+    from('distPackagerBase/dist')
+    into('release')
+    include('iZsetup_setup.jar')
+}
+
+task makeDistC(type: Copy, dependsOn: makeDistB) {
+	from('distPackagerBase/64b/dist')
+	into('release')
+	include('iZsetup_setup.jar')
+  rename { String fileName ->
+    fileName.replace("iZsetup_setup.jar", "iZsetup_setup64.jar")
+  }
+}
+
+task makeDistD(type:Exec, dependsOn: makeDistC) {
+  workingDir 'release'
+  commandLine file('release').getAbsolutePath()+'\\zip.exe', '-A', 'iZsetup_setup.jar'
+}
+task makeDistE(type:Exec, dependsOn: makeDistD) {
+  workingDir 'release'
+  
+  commandLine file('release').getAbsolutePath()+'\\zip.exe', '-A', 'iZsetup_setup64.jar'
+
+}
+
+
+
+jar{
+	manifest{
+		attributes 'Implementation-Title': 'iZSetup',
+					'Implementation-Version': 'SNAPSHOT',
+					'Main-Class': 'de.nplusc.izc.InstallPak.Main'
+					
+	}
+}
+
+repositories{
+	jcenter()
+}
+
+dependencies{
+	compile fileTree(dir: 'lib', include: '*.jar')
+	compile "commons-io:commons-io:2.+"
+	compile 'org.apache.commons:commons-exec:1.3'
+	compile "org.yaml:snakeyaml:1.14"
+	compile "commons-net:commons-net:3.3"
+	 compile	'org.xerial:sqlite-jdbc:3.8.7'
+
+
+	
+}
+

+ 10 - 0
IZSetup/distPackagerBase/64b/bundledata/bundle.izmeta

@@ -0,0 +1,10 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izbundle
+meta:isZipped: 'true'
+meta:needsElevation: 'true'
+comment:meta:isZipped: |-
+meta:packFormat: 'yaml'
+bundlename: iZsetup-Engine
+packagedata: default.iZpackage
+description: iZsetup-Runtime
+extractSize: '4000000'

+ 16 - 0
IZSetup/distPackagerBase/64b/bundledata/core.iZsetup

@@ -0,0 +1,16 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- SetupEngine
+SetupEngine:
+  Exec1:
+  - Installation des Core-packages
+  - copyfile
+  - "#basedir#\\iZsetup_inst.jar" 
+  - "%appdata%\\iZsetup\\iZsetup_inst.jar"
+  Exec2:
+  - Installation des Core-packages
+  - program
+  - javaw
+  - -jar
+  - "%appdata%\\iZsetup\\iZsetup_inst.jar"

+ 26 - 0
IZSetup/distPackagerBase/64b/bundledata/default.izpackage

@@ -0,0 +1,26 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izpackage
+packagebases:
+- Engine
+- FileExtensions
+- Samples
+Engine:
+  Name: iZsetup Runtime
+  script: '#basedir#\core.iZsetup'
+  detectInstall: File://%appdata%\iZsetup\IZSetup.jar
+  desc: InstallationsTool für die iZsetup-pakete
+  defaultEnabled: 'true'
+FileExtensions:
+  Name: Dateizuordnungen
+  dependsOn: Engine
+  script: '#basedir#\extensionPackage\extensions.izsetup'
+  detectInstall: REG://HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\
+  desc: Sorgt dafür dass iZsetup-files via doppelklick geladen werden können
+  defaultEnabled: 'true'
+Samples:
+  Name: Beispieldateien
+  dependsOn: Engine
+  script: '#basedir#\demo.iZsetup'
+  detectInstall: File://%userprofile%\documents\iZsetup-samples
+  desc: Für Entwickler
+  defaultEnabled: 'false'

+ 16 - 0
IZSetup/distPackagerBase/64b/bundledata/demo.iZsetup

@@ -0,0 +1,16 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- SetupSamples
+SetupSamples:
+  Exec1:
+  - Installation der Samples
+  - copyfiles
+  - "#basedir#\\demopaq.jar" 
+  - "%userprofile%\\documents\\iZsetup-samples\\demopaq.jar"
+  Exec2:
+  - Installation der Samples
+  - program
+  - javaw
+  - -jar
+  - "%userprofile%\\documents\\iZsetup-samples\\demopaq.jar"

+ 13 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/editallviaNPP.reg

@@ -0,0 +1,13 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit\command]
+@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit\command]
+@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""

+ 36 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/extensions.izsetup

@@ -0,0 +1,36 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- CoreExts
+- NppReg
+NppReg:
+  Condition:
+  - PathExists:C:\Program Files\Notepad++
+  ifnode:
+  - NppRegImpl
+NppRegImpl:
+  Exec1:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\editallviaNPP.reg"
+CoreExts:
+  Exec1:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izbundle.reg"
+  Exec2:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izpackage.reg"
+  Exec3:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izsetup.reg"

BIN
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/fext_refresh.exe


+ 26 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izbundle.reg

@@ -0,0 +1,26 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.izbundle]
+@="izsetup.izbundle"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage]
+@="iZsetup Packfile"
+"EditFlags"=dword:00000000
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\DefaultIcon]
+@="%appdata%\\izsetup\\izbundle.ico,0"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,62,00,75,00,6e,00,64,00,6c,00,65,00,20,00,22,00,25,00,31,00,\
+  22,00,00,00
+

+ 53 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izinstall.queue

@@ -0,0 +1,53 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|rgrp|Runtimes| 
+001|cond:1|IsWin8|Geht bis zum nächsten Exec,COnds können aufeinanderfolgen
+001|msg|kein DOtNetFxnötig (win8)| 
+001|exec| | 
+001|elsecond:1| | 
+001|msg|Installiere DotNetFx//windoof sollte sowas als update schieben...
+001|exec|dotnetfx45_full_x86_x64.exe /passive /norestart| 
+001|endcond:1| | 
+001|msg|Installiere VCRedist package//schiebt das gfällighst als update raus....| 
+001|exec|vcredist_x86.exe /passive /norestart| 
+002|rgrp|reghax| 
+002|cond:1|isWin8|
+002|msg|isntalliere reghäxe
+002|exec|reg import kls.reg|reghack für Anmeldung win8
+002|endcond:1| | 
+003|grp|Firefox| 
+003|msg|Installiere Mozarella Firefox| 
+003|exec|ff.exe -ms| 
+003|msg|Installiere Adobäh Fläsh| 
+003|exec|flashplayerinstaller.exe -install -au 0| 
+004|grp|Adobe Reader| 
+004|msg|bügele gerade Adobäh reader druff| 
+004|exec|AdbeRdr11000_de_DE.exe /sPB /msi /norestart ALLUSERS=1 EULA_ACCEPT=YES| 
+005|grp|Archivierungsprogramme| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|7z920.exe /S| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|wrar420d.exe /S| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|finish.exe| 
+006|grp|VLC+Addons| 
+006|msg|Installiere VLCer //@M$ Leckt mich am Arsch mit dem MEdiacenter-Scheisssssssss| 
+006|exec|vlc-2.0.0-win32.exe /S| 
+006|msg|Installiere Xvid //(damit dass ihr 20 € fürs DVD glozzen verlangt)| 
+006|exec|xvid.exe --mode unattended --decode_divx DIVX --decode_3ivx 3IVX --decode_other MPEG4| 
+007|grp|IrfanView| 
+007|msg|bügle irfanview drauf //(windoof kannseinen Murks sostwohin stopfen......)| 
+007|exec|ivs.exe /silent /desktop=0 /thumbs=0 /group=1 /allusers=0 /assoc=1| 
+007|msg|bügle irfanview drauf //(windoof kannseinen Murks sostwohin stopfen......)| 
+007|exec|ivps.exe /silent| 
+008|grp|imgburn| 
+008|msg|imgburn wird isntalliert//gebruzzelt wird nicht mit windoof-toolz|
+008|exec|imgburn.exe /S| 
+009|grp|Posteriza| 
+009|msg|grad wurde posteriza draufgebügelt......| 
+009|exec|posteriza.exe|sfx-hax
+010|msg|installiere ccleaner //und jetzt noch den datenmüll killen| 
+010|exec|ccsetup325.exe /S| 
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 25 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izpackage.reg

@@ -0,0 +1,25 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\.izpackage]
+@="izsetup.izpackage"
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage]
+@="iZsetup Packfile"
+"EditFlags"=dword:00000000
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\DefaultIcon]
+@="%appdata%\\izsetup\\izpackage.ico,0"
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell\open]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,66,00,69,00,6c,00,65,00,20,00,22,00,25,00,31,00,22,00,20,00,\
+  2d,00,2d,00,70,00,61,00,63,00,6b,00,00,00

+ 24 - 0
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/izsetup.reg

@@ -0,0 +1,24 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\.izsetup]
+@="izsetup.izsetup"
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup]
+@="iZsetup Scriptfile"
+"EditFlags"=dword:00000000
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\DefaultIcon]
+@="%appdata%\\izsetup\\izsetup.ico,0"
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell\open]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,66,00,69,00,6c,00,65,00,20,00,22,00,25,00,31,00,22,00,00,00

BIN
IZSetup/distPackagerBase/64b/bundledata/extensionPackage/tempo.reg


+ 15 - 0
IZSetup/distPackagerBase/64b/demopackage/addons.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Addons+0x01
+001|msg|Addon1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Addons+0x02
+002|msg|Addon2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Addons+0x03
+003|msg|Addon3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 10 - 0
IZSetup/distPackagerBase/64b/demopackage/bundle.izmeta

@@ -0,0 +1,10 @@
+000|izsetup|1.0.0| 
+000|type|bundle|nur für uer (der kommentar)
+001|meta:isZipped|false|
+CMM|meta:isZipped: bei false sind die dateien als normale dateien neben dieser bundle gelagert -> kein entzippern
+CMM|in tempdir nötig. Muss bei multidisk-bundles deaktiviert sein. bei diskbundles wird Deaktivierung empfohlen
+CMM|da es die Festplatte nicht so vollstopft
+001|bundlename|Testbundle
+001|packagedata|default.izpackage|muss im basedir des Bundles liegen(!!!!!!!!!!!!!!!!!!!!!!!!!!)
+001|Description|Test für bundleGui
+001|extractSize|10000|Angabe in Bytes. wird von GUI konvertiert.

BIN
IZSetup/distPackagerBase/64b/demopackage/default.izbundle


+ 64 - 0
IZSetup/distPackagerBase/64b/demopackage/default.izpackage

@@ -0,0 +1,64 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+000|type|packages|dient nur zur unterscheidung von packagefiles
+000|||packagefiles unterstützen Conds genauso
+000|flag|multidisk|dieses Flag aktivirt den Multidisk-Modus
+CMM|Inline-COmment-funktion
+CMM|Multidisk-Modus=Dateien werden nicht auf Temp kopiert und bei nem WaitDisk
+CMM|kommt ne Aufforderung die nächste Disk einzulegen
+CMM|der dateiname danach sagt auf welche datei geschaut wird
+001|pack|BaseSystem|Name de Packages das in der Anicht auftaucht
+001|detectInstall|File://C:\kernel.etl2
+CMM|File:// benutzt den DateiExistiert-operator
+CMM|Reg:// detektiert unter Win auf Exitenz von Regwert
+001|description|Die minimal nötigen Tools und Komponenten fürs System
+CMM|#basedir# ersetzt Variable durch Pfad dieser datei (ermöglict jar und
+CMM|setup voneinander zu trennen)
+001|packfile|#basedir#\pack001.izsetup
+CMM|msg und exec-lines werden vom PackManager ignoriert und sind für unattendeds nötig
+CMM|dabei werden alle packages nacheinander installiert und ausgeführt
+001|msg|Installiere BasePackage
+001|exec|java -jar izsetup.jar -file pack001.izsetup --silent
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+002|pack|Addons| 
+002|detectInstall|File://%userprofile%\appdata\programname\datei1.dat|
+002|description|Addons und sosntiges was nicht zwingend notwendig ist|
+002|packfile|#basedir#\addons.izsetup| 
+002|req|001|nummer des benötigten packs//kann weitere erfordernwenn
+002|msg|Installiere Addons| 
+002|exec|java -jar izsetup.jar -file addons.izsetup --silent| 
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+003|cond:1|IsWin7| 
+003|pack|Fehlendes Zeugs von XP| 
+003|detectInstall|File://C:\ornder2\datei2.bin
+003|description|Sach das bei XP defult war aber dort fehlt|
+003|packfile|#basedir#\xprecover.izsetup| 
+003|req|001| 
+003|msg|installiere fehlendes nach das bei XP dabei war
+003|exec|java -jar izsetup.jar -file xprevocer.izsetup --silent| 
+003|endcond:1| |
+004|pack|games| 
+004|waitDisk|#basedir#\games.izsetup| 
+004|detectInstall|File://C:\Program Files\ImgBurn\ImgBurn.exexexe
+004|Description|Die Games die nicht fehlen dürfen
+004|packfile|#basedir#\games.izsetup
+004|req|001| 
+004|msg|installiere games| 
+004|exec|java -jar izsetup.jar -file games.izsetup --silent| 
+005|pack|game-Tools| 
+005|waitDisk|#basedir#\gamestls.izsetup| 
+005|detectInstall|File://C:\ornder3\datei3b.bin| 
+005|Description|Tools für die games aus dem Package| 
+005|packfile|#basedir#\gamestls.izsetup
+005|req|004|dependencys gehen über mehrere packs ->auch 001 notwendig 
+005|msg|installiere games-tools| 
+005|exec|java -jar izsetup.jar -file gamestls.izsetup --silent| 
+999|pack|NoExec| dieses Pack ist nur als Wrapper fr die Basta-Messge gedacht und wird nicht ausgeführt
+999|req|000|da 000 kein pack kann dieses nicht ausgewählt werden
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/64b/demopackage/games.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Games+0x01
+001|msg|Games1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_2| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_3| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_4| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Games+0x02
+002|msg|Games2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_2| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_3| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_4| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Games+0x03
+003|msg|Games3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_2| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_3| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_4| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/64b/demopackage/gamestls.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|GameTools+0x01
+001|msg|GameTool1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_2| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_3| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_4| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|GameTools+0x02
+002|msg|GameTool2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_2| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_3| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_4| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|GameTools+0x03
+003|msg|GameTool3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_2| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_3| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_4| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 15 - 0
IZSetup/distPackagerBase/64b/demopackage/pack001.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Basetools+0x01
+001|msg|Tool1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl). smikolin trennt  argumente; dank an java7u17
+002|group|Group1|Basetools+0x02
+002|msg|Tool2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Basetools+0x03
+003|msg|Tool3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 15 - 0
IZSetup/distPackagerBase/64b/demopackage/xprecover.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Proggys+0x01
+001|msg|Proggy1_1|  
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|ProggysProggys+0x02
+002|msg|Proggy2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|ProggysProggys+0x03
+003|msg|Proggy3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 4 - 0
IZSetup/distPackagerBase/64b/demosfxcomm.txt

@@ -0,0 +1,4 @@
+;Der folgende Kommentar enthält SFX-Skriptbefehle
+
+Path=%userprofile%/documents/iZsetup-samples
+Silent=1

+ 5 - 0
IZSetup/distPackagerBase/64b/distsfxcomm.txt

@@ -0,0 +1,5 @@
+;Der folgende Kommentar enthält SFX-Skriptbefehle
+
+Setup=bootstrap.bat
+TempMode
+Silent=1

+ 13 - 0
IZSetup/distPackagerBase/64b/editallviaNPP.txt

@@ -0,0 +1,13 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit\command]
+@="\"C:\Program Files\Notepad++\notepad++.exe\" \"%1\""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit\command]
+@="\"C:\Program Files\Notepad++\notepad++.exe\" \"%1\""

BIN
IZSetup/distPackagerBase/64b/engine.exex


BIN
IZSetup/distPackagerBase/64b/engine/ICE_JNIRegistry.dll


+ 32 - 0
IZSetup/distPackagerBase/64b/engine/README.TXT

@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "IZSetup.jar" 
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.

+ 3 - 0
IZSetup/distPackagerBase/64b/engine/iZlaunch.cfg

@@ -0,0 +1,3 @@
+iZsetup.jar
+de.nplusc.izc.InstallPak.Main
+iZsetup.new

BIN
IZSetup/distPackagerBase/64b/engine/izBundle.ico


BIN
IZSetup/distPackagerBase/64b/engine/izpackage.ico


BIN
IZSetup/distPackagerBase/64b/engine/izsetup.ico


BIN
IZSetup/distPackagerBase/64b/helper/fext-1.reg


BIN
IZSetup/distPackagerBase/64b/helper/fext-2.reg


BIN
IZSetup/distPackagerBase/64b/izBundle.ico


BIN
IZSetup/distPackagerBase/64b/izpackage.ico


BIN
IZSetup/distPackagerBase/64b/izsetup.ico


BIN
IZSetup/distPackagerBase/64b/izsetup.izbundle_bak


+ 43 - 0
IZSetup/distPackagerBase/64b/makedist.sh

@@ -0,0 +1,43 @@
+#!/bin/bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd $DIR
+cd engine
+rm izsetup.jar
+rm -rf lib
+cp -r /etc/jnkns/workspace/iZSetup/dist/lib lib
+cp /etc/jnkns/workspace/iZSetup/dist/IZSetup.jar izsetup.jar
+cd ../
+cd bundledata
+cd ../
+
+cd predist
+cd ../
+cd dist
+rm izsetup.exe_bak
+mv izsetup.exe izsetup.exe_bak
+cd ../
+cd engine
+rar a -r -sfx -z"../sfxcomm.txt" engine.exe *
+mv engine.exe ../bundledata/engine.exe
+cd ../
+
+cd demopackage
+rar a -r -sfx -z"../distsfxcomm.txt" demopackage.exe *
+mv demopackage.exe ../bundledata/demopackage.exe
+cd ../
+
+cd bundledata
+7z a t.zip *
+mv t.zip izsetup.izbundle
+mv izsetup.izbundle ../predist/izsetup.izbundle
+cd ../
+
+cd predist
+rar a -r -sfx -z"../distsfxcomm.txt" izsetup.exe *
+mv izsetup.exe ../dist/izsetup64.exe
+cd ../
+cd dist
+mkdir $1
+cp izsetup64.exe $1/izsetup64.exe
+cp izsetup64.exe ../../dist/izsetup64.exe
+cd ../

BIN
IZSetup/distPackagerBase/64b/predist/ICE_JNIRegistry.dll


+ 4 - 0
IZSetup/distPackagerBase/64b/predist/bootstrap.bat

@@ -0,0 +1,4 @@
+@echo off
+set bindir=%~dp0
+cd %bindir%
+java -jar %bindir%\izsetup.jar -bundle %bindir%izsetup.izbundle

BIN
IZSetup/distPackagerBase/64b/predist/izsetup.izbundle


+ 1 - 0
IZSetup/distPackagerBase/64b/predist/sfx.bat

@@ -0,0 +1 @@
+bootstrap.bat

+ 5 - 0
IZSetup/distPackagerBase/64b/sfxcomm.txt

@@ -0,0 +1,5 @@
+;Der folgende Kommentar enthält SFX-Skriptbefehle
+
+Path=%appdata%\iZsetup
+Silent=2
+Title=iZsetup-Core

BIN
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/ICE_JNIRegistry.dll


+ 15 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/addons.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Addons+0x01
+001|msg|Addon1_1| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Addons+0x02
+002|msg|Addon2_1| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Addons+0x03
+003|msg|Addon3_1| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 74 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/build.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="IZSetup" default="default" basedir=".">
+    <description>Builds, tests, and runs the project IZSetup.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties
+      -post-init:                called after initialization of project properties
+      -pre-compile:              called before javac compilation
+      -post-compile:             called after javac compilation
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-jar:                  called before JAR building
+      -post-jar:                 called after JAR building
+      -post-clean:               called after cleaning build products
+
+    (Targets beginning with '-' are not intended to be called on their own.)
+
+    Example of inserting an obfuscator after compilation could look like this:
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Another way to customize the build is by overriding existing main targets.
+    The targets of interest are: 
+
+      -init-macrodef-javac:     defines macro for javac compilation
+      -init-macrodef-junit:     defines macro for junit execution
+      -init-macrodef-debug:     defines macro for class debugging
+      -init-macrodef-java:      defines macro for class execution
+      -do-jar-with-manifest:    JAR building (if you are using a manifest)
+      -do-jar-without-manifest: JAR building (if you are not using a manifest)
+      run:                      execution of project 
+      -javadoc-build:           Javadoc generation
+      test-report:              JUnit report generation
+
+    An example of overriding the target for project execution could look like this:
+
+        <target name="run" depends="IZSetup-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that the overridden target depends on the jar target and not only on 
+    the compile target as the regular run target does. Again, for a list of available 
+    properties which you can use, check the target you are overriding in the
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>

+ 10 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/bundle.izmeta

@@ -0,0 +1,10 @@
+000|izsetup|1.0.0| 
+000|type|bundle|nur für uer (der kommentar)
+001|meta:isZipped|false|
+CMM|meta:isZipped: bei false sind die dateien als normale dateien neben dieser bundle gelagert -> kein entzippern
+CMM|in tempdir nötig. Muss bei multidisk-bundles deaktiviert sein. bei diskbundles wird Deaktivierung empfohlen
+CMM|da es die Festplatte nicht so vollstopft
+001|bundlename|Testbundle
+001|packagedata|default.izpackage|muss im basedir des Bundles liegen(!!!!!!!!!!!!!!!!!!!!!!!!!!)
+001|Description|Test für bundleGui
+001|extractSize|10000|Angabe in Bytes. wird von GUI konvertiert.

BIN
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/default.izbundle


+ 64 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/default.izpackage

@@ -0,0 +1,64 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+000|type|packages|dient nur zur unterscheidung von packagefiles
+000|||packagefiles unterstützen Conds genauso
+000|flag|multidisk|dieses Flag aktivirt den Multidisk-Modus
+CMM|Inline-COmment-funktion
+CMM|Multidisk-Modus=Dateien werden nicht auf Temp kopiert und bei nem WaitDisk
+CMM|kommt ne Aufforderung die nächste Disk einzulegen
+CMM|der dateiname danach sagt auf welche datei geschaut wird
+001|pack|BaseSystem|Name de Packages das in der Anicht auftaucht
+001|detectInstall|File://C:\kernel.etl2
+CMM|File:// benutzt den DateiExistiert-operator
+CMM|Reg:// detektiert unter Win auf Exitenz von Regwert
+001|description|Die minimal nötigen Tools und Komponenten fürs System
+CMM|#basedir# ersetzt Variable durch Pfad dieser datei (ermöglict jar und
+CMM|setup voneinander zu trennen)
+001|packfile|#basedir#\pack001.izsetup
+CMM|msg und exec-lines werden vom PackManager ignoriert und sind für unattendeds nötig
+CMM|dabei werden alle packages nacheinander installiert und ausgeführt
+001|msg|Installiere BasePackage
+001|exec|java -jar izsetup.jar -file pack001.izsetup --silent
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+002|pack|Addons| 
+002|detectInstall|File://%userprofile%\appdata\programname\datei1.dat|
+002|description|Addons und sosntiges was nicht zwingend notwendig ist|
+002|packfile|#basedir#\addons.izsetup| 
+002|req|001|nummer des benötigten packs//kann weitere erfordernwenn
+002|msg|Installiere Addons| 
+002|exec|java -jar izsetup.jar -file addons.izsetup --silent| 
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+003|cond:1|IsWin7| 
+003|pack|Fehlendes Zeugs von XP| 
+003|detectInstall|File://C:\ornder2\datei2.bin
+003|description|Sach das bei XP defult war aber dort fehlt|
+003|packfile|#basedir#\xprecover.izsetup| 
+003|req|001| 
+003|msg|installiere fehlendes nach das bei XP dabei war
+003|exec|java -jar izsetup.jar -file xprevocer.izsetup --silent| 
+003|endcond:1| |
+004|pack|games| 
+004|waitDisk|#basedir#\games.izsetup| 
+004|detectInstall|File://C:\Program Files\ImgBurn\ImgBurn.exexexe
+004|Description|Die Games die nicht fehlen dürfen
+004|packfile|#basedir#\games.izsetup
+004|req|001| 
+004|msg|installiere games| 
+004|exec|java -jar izsetup.jar -file games.izsetup --silent| 
+005|pack|game-Tools| 
+005|waitDisk|#basedir#\gamestls.izsetup| 
+005|detectInstall|File://C:\ornder3\datei3b.bin| 
+005|Description|Tools für die games aus dem Package| 
+005|packfile|#basedir#\gamestls.izsetup
+005|req|004|dependencys gehen über mehrere packs ->auch 001 notwendig 
+005|msg|installiere games-tools| 
+005|exec|java -jar izsetup.jar -file gamestls.izsetup --silent| 
+999|pack|NoExec| dieses Pack ist nur als Wrapper fr die Basta-Messge gedacht und wird nicht ausgeführt
+999|req|000|da 000 kein pack kann dieses nicht ausgewählt werden
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/games.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Games+0x01
+001|msg|Games1_1| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_2| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_3| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_4| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Games+0x02
+002|msg|Games2_1| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_2| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_3| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_4| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Games+0x03
+003|msg|Games3_1| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_2| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_3| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_4| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/gamestls.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|GameTools+0x01
+001|msg|GameTool1_1| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_2| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_3| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_4| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|GameTools+0x02
+002|msg|GameTool2_1| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_2| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_3| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_4| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|GameTools+0x03
+003|msg|GameTool3_1| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_2| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_3| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_4| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 3 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/manifest.mf

@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+

+ 15 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/pack001.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Basetools+0x01
+001|msg|Tool1_1| 
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Basetools+0x02
+002|msg|Tool2_1| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Basetools+0x03
+003|msg|Tool3_1| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 173 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/BundleVerifyGui.form

@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <NonVisualComponents>
+    <Component class="javax.swing.JSeparator" name="jSeparator2">
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator3">
+    </Component>
+  </NonVisualComponents>
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[852, 331]"/>
+    </Property>
+    <Property name="resizable" type="boolean" value="false"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentMoved"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <EmptySpace min="-2" pref="35" max="-2" attributes="0"/>
+                              <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace type="separate" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="35" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="lblDesc" max="32767" attributes="0"/>
+                          <Group type="102" attributes="0">
+                              <Component id="lblSize" min="-2" pref="142" max="-2" attributes="0"/>
+                              <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace min="-2" pref="90" max="-2" attributes="0"/>
+                      <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace min="-2" max="-2" attributes="0"/>
+          </Group>
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Component id="jSeparator4" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jSeparator1" max="32767" attributes="0"/>
+                  </Group>
+                  <Component id="monitorBar" max="32767" attributes="0"/>
+                  <Component id="unpax" alignment="1" max="32767" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+          <Group type="102" alignment="1" attributes="0">
+              <EmptySpace min="0" pref="475" max="32767" attributes="0"/>
+              <Component id="lblName" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="350" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="1" attributes="0">
+              <EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
+              <Component id="lblName" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="63" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="lblDesc" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="separate" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="lblSize" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace pref="74" max="32767" attributes="0"/>
+              <Component id="unpax" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
+              <Component id="jLabel7" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="3" max="-2" attributes="0"/>
+              <Component id="monitorBar" min="-2" pref="36" max="-2" attributes="0"/>
+              <EmptySpace type="unrelated" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="1" attributes="0">
+                  <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/>
+                  <Component id="jSeparator4" min="-2" pref="10" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace min="-2" pref="11" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JProgressBar" name="monitorBar">
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblName">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Name"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel2">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Beschreibung"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel3">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Speicherverbrauch"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblDesc">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="jLabel5"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblSize">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="jLabel6"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel4">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="izSetup 1.0.0 (c) 2012 iZc"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator1">
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator4">
+    </Component>
+    <Component class="javax.swing.JButton" name="unpax">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Entpacken und Module ausw&#xe4;hlen"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="unpaxActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel7">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Status des Entpackens"/>
+      </Properties>
+    </Component>
+  </SubComponents>
+</Form>

+ 319 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/BundleVerifyGui.java

@@ -0,0 +1,319 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.IOtools.FileTK;
+import de.nplusc.izc.tools.IOtools.ZipFileHandler;
+import de.nplusc.izc.tools.UiToolz.UiTools;
+import de.nplusc.izc.tools.baseTools.Lock;
+import de.nplusc.izc.tools.baseTools.Tools;
+import java.awt.Point;
+
+/**
+ *
+ * @author LH
+ */
+public class BundleVerifyGui extends javax.swing.JFrame
+{
+    public String zf;
+    /**
+     * Creates new form BundleVerifyGui
+     * @param zf das FIle des Bundles
+     */
+    public BundleVerifyGui(String zfl)
+    {
+        zf=zfl;
+        z=new ZipFileHandler(zf);
+        initComponents();
+        readInBundle();//file ist im zipfilehandlerdefiniert;
+        updatePosition();
+    }
+        private void updatePosition()
+    {
+        Point p = new Point(ModeSel.topleft_coords_x, ModeSel.topleft_coords_y);
+        setLocation(p);
+    }
+    private boolean isDiskMode=false;
+    private String packfileForInstall;
+    private void readInBundle()
+    {
+        String[] bundledata = izsetupReader.ConvertToSysSpezSetupFile(z.getStringEntry("bundle.izmeta"), false, true, "");
+        String baseDir = Tools.processEnvVarsinLine("%temp%\\iZsetup");//sird aktualisiert wenn ein UnCopy-Bundle erkannt wurde
+        for (String line : bundledata)
+        {
+            System.err.println(line);
+            String[] linedata= line.split("\\|");
+            if(linedata[1].equalsIgnoreCase("meta:isZipped")&&linedata[2].equalsIgnoreCase("false"))
+            {
+                System.err.println("Disk?");
+                isDiskMode=true;
+                baseDir=FileTK.getFilePath(zf);
+                unpax.setText("Module auswählen");
+                monitorBar.setVisible(false);
+            }
+            if(linedata[1].equalsIgnoreCase("extractSize"))
+               lblSize.setText(UiTools.convertToSizeString(Long.valueOf(linedata[2])));
+            if(linedata[1].equalsIgnoreCase("Description"))
+               lblDesc.setText(linedata[2]);
+            if(linedata[1].equalsIgnoreCase("bundlename"))
+               lblName.setText(linedata[2]);
+            if(linedata[1].equalsIgnoreCase("packagedata"))
+                packfileForInstall = baseDir+"\\"+linedata[2];
+        }
+    }
+    
+    
+    
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        jSeparator2 = new javax.swing.JSeparator();
+        jSeparator3 = new javax.swing.JSeparator();
+        monitorBar = new javax.swing.JProgressBar();
+        lblName = new javax.swing.JLabel();
+        jLabel2 = new javax.swing.JLabel();
+        jLabel3 = new javax.swing.JLabel();
+        lblDesc = new javax.swing.JLabel();
+        lblSize = new javax.swing.JLabel();
+        jLabel4 = new javax.swing.JLabel();
+        jSeparator1 = new javax.swing.JSeparator();
+        jSeparator4 = new javax.swing.JSeparator();
+        unpax = new javax.swing.JButton();
+        jLabel7 = new javax.swing.JLabel();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        setPreferredSize(new java.awt.Dimension(852, 331));
+        setResizable(false);
+        addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                formComponentMoved(evt);
+            }
+        });
+
+        lblName.setText("Name");
+
+        jLabel2.setText("Beschreibung");
+
+        jLabel3.setText("Speicherverbrauch");
+
+        lblDesc.setText("jLabel5");
+
+        lblSize.setText("jLabel6");
+
+        jLabel4.setText("izSetup 1.0.0 (c) 2012 iZc");
+
+        unpax.setText("Entpacken und Module auswählen");
+        unpax.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                unpaxActionPerformed(evt);
+            }
+        });
+
+        jLabel7.setText("Status des Entpackens");
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(layout.createSequentialGroup()
+                                .addGap(35, 35, 35)
+                                .addComponent(jLabel3)
+                                .addGap(18, 18, 18))
+                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                                .addContainerGap()
+                                .addComponent(jLabel2)
+                                .addGap(35, 35, 35)))
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(lblDesc, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addGroup(layout.createSequentialGroup()
+                                .addComponent(lblSize, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addGap(0, 0, Short.MAX_VALUE))))
+                    .addGroup(layout.createSequentialGroup()
+                        .addGap(90, 90, 90)
+                        .addComponent(jLabel7)))
+                .addContainerGap())
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jLabel4)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jSeparator1))
+                    .addComponent(monitorBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addComponent(unpax, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addContainerGap())
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                .addGap(0, 475, Short.MAX_VALUE)
+                .addComponent(lblName)
+                .addGap(350, 350, 350))
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                .addGap(21, 21, 21)
+                .addComponent(lblName)
+                .addGap(63, 63, 63)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(lblDesc)
+                    .addComponent(jLabel2))
+                .addGap(18, 18, 18)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(jLabel3)
+                    .addComponent(lblSize))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 74, Short.MAX_VALUE)
+                .addComponent(unpax)
+                .addGap(1, 1, 1)
+                .addComponent(jLabel7)
+                .addGap(3, 3, 3)
+                .addComponent(monitorBar, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(jLabel4)
+                    .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(11, 11, 11))
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+    ZipFileHandler z;
+    Lock l = new Lock();
+    private void unpaxActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_unpaxActionPerformed
+    {//GEN-HEADEREND:event_unpaxActionPerformed
+
+        if(!isDiskMode)
+        {
+            System.err.println("Diskfile detected");
+            try
+            {
+                l.lock();
+            }
+            catch (InterruptedException ex)
+            {
+                ex.printStackTrace();
+            }
+            new Thread(new Runnable()
+            {
+                @SuppressWarnings("ResultOfObjectAllocationIgnored")
+                @Override
+                public void run()
+                {
+                    
+                    z.extractAllToDiskWithMonitoringProgressbar(Tools.processEnvVarsinLine("%temp%\\iZsetup"), monitorBar);
+                    l.unlock();
+                }
+            }).start();
+        }
+        try
+        {
+            l.lock();
+            l.unlock();
+        }
+        catch (InterruptedException ex)
+        {
+        }
+        ModeSel.filePath=packfileForInstall;//wird von dem anderen Modul verarbeitet
+        new Thread(new Runnable()
+        {
+            @SuppressWarnings("ResultOfObjectAllocationIgnored")
+            @Override
+            public void run()
+            {
+                new PackagerGUI().setVisible(true);
+            }
+        }).start();
+        setVisible(false);
+        
+    }//GEN-LAST:event_unpaxActionPerformed
+
+    private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
+    {//GEN-HEADEREND:event_formComponentMoved
+        ModeSel.topleft_coords_x = getLocation().x;
+        ModeSel.topleft_coords_y = getLocation().x;
+    }//GEN-LAST:event_formComponentMoved
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[])
+    {
+        /* Set the Nimbus look and feel */
+        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
+         */
+        try
+        {
+            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
+            {
+                if ("Nimbus".equals(info.getName()))
+                {
+                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
+                    break;
+                }
+            }
+        }
+        catch (ClassNotFoundException ex)
+        {
+            java.util.logging.Logger.getLogger(BundleVerifyGui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (InstantiationException ex)
+        {
+            java.util.logging.Logger.getLogger(BundleVerifyGui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (IllegalAccessException ex)
+        {
+            java.util.logging.Logger.getLogger(BundleVerifyGui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (javax.swing.UnsupportedLookAndFeelException ex)
+        {
+            java.util.logging.Logger.getLogger(BundleVerifyGui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        //</editor-fold>
+
+        /* Create and display the form */
+        java.awt.EventQueue.invokeLater(new Runnable()
+        {
+            public void run()
+            {
+                System.err.println("FIFO");
+                //new BundleVerifyGui("D:\\\\zip\\\\test.zip").setVisible(true);
+            }
+        });
+    }
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JLabel jLabel3;
+    private javax.swing.JLabel jLabel4;
+    private javax.swing.JLabel jLabel7;
+    private javax.swing.JSeparator jSeparator1;
+    private javax.swing.JSeparator jSeparator2;
+    private javax.swing.JSeparator jSeparator3;
+    private javax.swing.JSeparator jSeparator4;
+    private javax.swing.JLabel lblDesc;
+    private javax.swing.JLabel lblName;
+    private javax.swing.JLabel lblSize;
+    private javax.swing.JProgressBar monitorBar;
+    private javax.swing.JButton unpax;
+    // End of variables declaration//GEN-END:variables
+}

+ 137 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallManager.java

@@ -0,0 +1,137 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+
+/**
+ *
+ * @author LH
+ */
+public class InstallManager
+{
+    public static InstallManager Main;
+    private String[] InstallQueue;
+    private String[] Groups;
+    private String[] enabledGroupIDs;
+    private HashMap<String,ArrayList<String>> groupsplitted = new HashMap<>();
+    static{
+        Main=  new InstallManager();
+      //  Main.setInstallScript(ModeSel.filePath);
+    }
+    
+    public String[] getToggleAblePrograms()
+    {
+        Arrays.sort(Groups);
+        return Groups;
+    }
+    
+    public void setInstallScript(String path)
+    {
+        String[] data = izsetupReader.getSysSpezSetupFile(path);
+        String groupID="000"; 
+        String previousGRPID ="000";
+        
+        ArrayList<String> SubGroup = new ArrayList<>();
+        for (String line : data)
+        {
+            if(!(line.length()<6))
+            {
+                String[] splittedLine = line.split("\\|");
+                //DBG_START
+               // System.err.println(splittedLine[0]+"|GRP");
+               // System.err.println(splittedLine[1]+"|KEY");
+               // System.err.println(splittedLine[2]+"|VAL");
+               // System.err.println(splittedLine[3]+"|CMNT");
+                //DBG_STOP
+                if(!splittedLine[0].equals("000"))
+                {
+                    groupID=splittedLine[0];
+                    if(!previousGRPID.equals(groupID)&&!previousGRPID.equals("000"))
+                    {
+                        groupsplitted.put(previousGRPID, SubGroup);//Einlagern der abgeschlossenen gruppe
+                        SubGroup = new ArrayList<>();//resetten für neue daten;
+                    }
+                    SubGroup.add(line);
+                    previousGRPID=groupID;
+
+                }
+            }
+        }
+        groupsplitted.put(previousGRPID, SubGroup);//die letzte auch noch einflanschen
+        String[] groupIDs = groupsplitted.keySet().toArray(new String[0]);
+        ArrayList<String> lenabledGroupIDs = new ArrayList<>();
+        ArrayList<String> lGroups = new ArrayList<>();
+        for (String id : groupIDs)
+        {
+            lenabledGroupIDs.add(id);
+            
+            if(groupsplitted.get(id).get(0).split("\\|")[1].equalsIgnoreCase("grp")||groupsplitted.get(id).get(0).split("\\|")[1].equalsIgnoreCase("group"))
+            {
+                String groupname = groupsplitted.get(id).get(0).split("\\|")[2];//angelt sich erste zeile der Gruppe davon 3. Wert
+                                                                                //wenn nicht mit grp oder group eingeleitetdann immer ausgeführt
+                lGroups.add(id+"|"+groupname);
+            }
+        }
+        Groups = lGroups.toArray(new String[0]);
+        enabledGroupIDs=lenabledGroupIDs.toArray(new String[0]);
+    }
+    public void setGroupState(String grpid,boolean state)
+    {
+        boolean exists = false;
+        for (int i = 0; i < enabledGroupIDs.length; i++)
+        {
+            String id = enabledGroupIDs[i];
+            if(grpid.equals(id))
+            {
+                exists=true;
+                if(!state)
+                {
+                    enabledGroupIDs[i]="";
+                }
+            }
+        }
+        ArrayList<String> newGrps = new ArrayList<>();
+        for (String cnt : enabledGroupIDs)
+        {
+            if(cnt.length()>1)
+            {
+                newGrps.add(cnt);
+            }
+        }
+        if(!exists&&state)
+        {
+            newGrps.add(grpid);
+        }
+        enabledGroupIDs = newGrps.toArray(new String[0]);
+    }
+    public String[] getInstallQueue()
+    {
+        return InstallQueue;
+    }
+    
+    
+    public void createQueue()
+    {
+        ArrayList<String> TempQueue = new ArrayList<>();
+        Arrays.sort(enabledGroupIDs);
+        //System.err.println("nop");
+        for (String id : enabledGroupIDs)
+        {
+            ArrayList<String> loadedGroup = groupsplitted.get(id);
+            for (String lines : loadedGroup)
+            {
+                String[] linedata =lines.split("\\|");
+                if(linedata[1].equalsIgnoreCase("msg")||linedata[1].equalsIgnoreCase("exec")||linedata[1].equalsIgnoreCase("requireExec"))
+                {
+                    TempQueue.add(linedata[2]);
+                }
+            }
+        }
+        InstallQueue = TempQueue.toArray(new String[0]);
+    }
+}

+ 132 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallProgressGui.form

@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+    <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[852, 331]"/>
+    </Property>
+    <Property name="resizable" type="boolean" value="false"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentMoved"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="1" attributes="0">
+                      <Component id="jSeparator3" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jSeparator4" max="32767" attributes="0"/>
+                  </Group>
+                  <Component id="ptotal" alignment="0" max="32767" attributes="0"/>
+                  <Group type="102" alignment="0" attributes="0">
+                      <Group type="103" groupAlignment="1" max="-2" attributes="0">
+                          <Component id="lblMsg" alignment="0" max="32767" attributes="0"/>
+                          <Component id="btnExit" alignment="0" max="32767" attributes="0"/>
+                          <Component id="jScrollPane1" alignment="0" pref="787" max="32767" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="pbarPacks" pref="39" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="1" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="ptotal" min="-2" pref="31" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Component id="lblMsg" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace pref="22" max="32767" attributes="0"/>
+                      <Component id="jScrollPane1" min="-2" pref="187" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="btnExit" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <Component id="pbarPacks" max="32767" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="1" attributes="0">
+                  <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSeparator3" min="-2" pref="10" max="-2" attributes="0"/>
+                  <Component id="jSeparator4" min="-2" pref="10" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTextArea" name="tempLog">
+          <Properties>
+            <Property name="columns" type="int" value="20"/>
+            <Property name="rows" type="int" value="5"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="lblMsg">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Starte Installixierung"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JProgressBar" name="ptotal">
+    </Component>
+    <Component class="javax.swing.JButton" name="btnExit">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Beenden"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnExitActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="izSetup 1.0.0 (c) 2012 iZc"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JProgressBar" name="pbarPacks">
+      <Properties>
+        <Property name="minimum" type="int" value="10"/>
+        <Property name="orientation" type="int" value="1"/>
+        <Property name="value" type="int" value="3"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator3">
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator4">
+    </Component>
+  </SubComponents>
+</Form>

+ 359 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/InstallProgressGui.java

@@ -0,0 +1,359 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.IOtools.FileTK;
+import de.nplusc.izc.tools.UiToolz.BootStrap;
+import de.nplusc.izc.tools.baseTools.Lock;
+import de.nplusc.izc.tools.baseTools.Tools;
+import de.nplusc.izc.tools.baseTools.Messagers;
+import java.awt.Point;
+import java.util.ArrayList;
+import javax.swing.UIManager;
+        
+
+/**
+ *
+ * @author LH
+ */
+public class InstallProgressGui extends javax.swing.JFrame
+{
+    InstallManager im = InstallManager.Main;
+    private boolean autoExit = true;
+    private boolean packMode = false;//ändert GUI ein hisschen und arbeitet ne zweite queue ab
+    private String[] packList;
+    private Lock l = new Lock();
+    /**
+     * Creates new form InstallProgressGui
+     */
+    public InstallProgressGui()
+    {
+
+        initComponents();
+        updatePosition();
+        btnExit.setVisible(false);
+        pbarPacks.setVisible(false);
+        startInstallation();
+        
+    }
+    private void updatePosition()
+    {
+        Point p = new Point(ModeSel.topleft_coords_x, ModeSel.topleft_coords_y);
+        setLocation(p);
+    }
+    public InstallProgressGui(String[] packQueue)
+    {
+
+        //System.err.println("PAck");
+        initComponents();
+        updatePosition();
+        pbarPacks.setVisible(true);
+        btnExit.setVisible(false);
+        packList = packQueue;
+        startPackInstall();
+    }
+    public void startPackInstall()
+    {
+        ArrayList<String> packListCopyTemp = new ArrayList<>();
+        for (String qe : packList)
+        {
+            String comparer = qe.substring(0,9);
+            if(comparer.equalsIgnoreCase("packfile:"))
+                packListCopyTemp.add(qe);
+        }
+        pbarPacks.setMaximum(packListCopyTemp.size());
+        pbarPacks.setMinimum(0);
+        pbarPacks.setValue(0);
+        packMode=true;
+        autoExit=false;
+        new Thread(new Runnable()
+        {
+            @Override
+            @SuppressWarnings("SleepWhileInLoop")
+            public void run()
+            {
+                try
+                {
+                    BootStrap.bootLock.lock();
+                    BootStrap.bootLock.unlock();
+                }
+                catch (InterruptedException ex)
+                {
+                    ex.printStackTrace();
+                }
+                for (String packcmd : packList)
+                {
+                    im =new InstallManager();
+                    String fileToHandle = packcmd.substring(9);
+                    //substring(9)
+                    String comparer = packcmd.substring(0,9);
+                    if(comparer.equalsIgnoreCase("packfile:"))
+                    {
+                        im.setInstallScript(fileToHandle);
+                        im.createQueue();
+                        try
+                        {
+                            //System.err.println("");
+                            l.lock();//das 2. geht erst durch wenn von wo anderst geunlockt wurde;
+                            startInstallation();
+                            
+                            l.lock();
+                            System.err.println("UnloxDetected");
+                            l.unlock();    
+                        }
+                        catch (InterruptedException ex)
+                        {
+                            ex.printStackTrace();
+                        }
+                        pbarPacks.setValue(pbarPacks.getValue()+1);
+                    }
+                    if(comparer.equalsIgnoreCase("waitdisk:"))
+                    {
+                        System.err.println("WaitDetected;");
+                        boolean rightDisk = FileTK.checkDirExist(fileToHandle);
+                        while(!rightDisk)
+                        {
+                            Messagers.SingleLineMsg("Nächste Disk bitte", "OKee...");
+                            rightDisk = FileTK.checkDirExist(fileToHandle);
+                        }
+                        
+                    }
+                    
+                }
+                btnExit.setVisible(true);
+                
+            }
+        }).start();
+    }
+    
+    public void startInstallation()
+    {
+
+        int count = im.getInstallQueue().length;
+        ptotal.setMinimum(0);
+        ptotal.setValue(0);
+        ptotal.setMaximum((count/2));
+        if(packMode)
+            ptotal.setMaximum((count/2)-1);
+        
+        new Thread(new Runnable()
+        {
+
+            @Override
+            @SuppressWarnings("SleepWhileInLoop")
+            public void run()
+            {
+                try
+                {
+                    BootStrap.bootLock.lock();
+                    BootStrap.bootLock.unlock();
+                }
+                catch (InterruptedException ex)
+                {
+                    ex.printStackTrace();
+                }
+                String[] queue = im.getInstallQueue();
+                for (int i = 0; i + 1 < queue.length; i++)
+                {
+                    String msg = queue[i];
+                    tempLog.append(lblMsg.getText() + "\n");//Trockentest für Cmd-s
+                    lblMsg.setText(msg);
+                    i++;
+                    String cmd = queue[i];
+                    if(!cmd.equalsIgnoreCase("wait"))
+                    {
+                    System.err.println(msg);
+                    System.err.println(cmd);
+                    Tools.runSingleCmd(true,true,true,cmd);//scharfgesetzt
+                    }
+                    else
+                    {
+                        autoExit = false;
+                    }
+                    try
+                    {
+                        Thread.sleep(1000);
+                    }
+                    catch (InterruptedException ex)
+                    {
+                        //ex.printStackTrace();
+                    }
+                    ptotal.setValue(ptotal.getValue()+1);
+                }
+                System.err.println("...");
+                //lblMsg.setText("finito");
+                if(!packMode)
+                    btnExit.setVisible(true);
+                if(autoExit)
+                {
+                    try
+                    {
+                        Thread.sleep(20000);
+                    }
+                    catch (InterruptedException ex)
+                    {
+                        ex.printStackTrace();
+                    }
+                }
+                else
+                {
+                    if(!packMode)
+                    {
+                        System.exit(0);
+                    }
+                    else
+                    {
+                        System.err.println("unlox");
+                        l.unlock();
+                    }
+                }
+            }
+        }).start();
+
+    }
+
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        jScrollPane1 = new javax.swing.JScrollPane();
+        tempLog = new javax.swing.JTextArea();
+        lblMsg = new javax.swing.JLabel();
+        ptotal = new javax.swing.JProgressBar();
+        btnExit = new javax.swing.JButton();
+        jLabel1 = new javax.swing.JLabel();
+        pbarPacks = new javax.swing.JProgressBar();
+        jSeparator3 = new javax.swing.JSeparator();
+        jSeparator4 = new javax.swing.JSeparator();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        setMinimumSize(new java.awt.Dimension(852, 331));
+        setResizable(false);
+        addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                formComponentMoved(evt);
+            }
+        });
+
+        tempLog.setColumns(20);
+        tempLog.setRows(5);
+        jScrollPane1.setViewportView(tempLog);
+
+        lblMsg.setText("Starte Installixierung");
+
+        btnExit.setText("Beenden");
+        btnExit.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnExitActionPerformed(evt);
+            }
+        });
+
+        jLabel1.setText("izSetup 1.0.0 (c) 2012 iZc");
+
+        pbarPacks.setMinimum(10);
+        pbarPacks.setOrientation(1);
+        pbarPacks.setValue(3);
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                        .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jLabel1)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jSeparator4))
+                    .addComponent(ptotal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+                            .addComponent(lblMsg, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(btnExit, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 787, Short.MAX_VALUE))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(pbarPacks, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(ptotal, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(lblMsg)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
+                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(btnExit))
+                    .addComponent(pbarPacks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(jLabel1)
+                    .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void btnExitActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnExitActionPerformed
+    {//GEN-HEADEREND:event_btnExitActionPerformed
+        System.exit(0);
+    }//GEN-LAST:event_btnExitActionPerformed
+
+    private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
+    {//GEN-HEADEREND:event_formComponentMoved
+        ModeSel.topleft_coords_x = getLocation().x;
+        ModeSel.topleft_coords_y = getLocation().x;
+    }//GEN-LAST:event_formComponentMoved
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[])
+    {
+                        try {
+	    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
+	} catch( Exception e ) { 
+	    //e.printStackTrace();
+	}
+        /* Create and display the form */
+        java.awt.EventQueue.invokeLater(new Runnable()
+        {
+            public void run()
+            {
+                new InstallProgressGui().setVisible(true);
+            }
+        });
+    }
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnExit;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JSeparator jSeparator3;
+    private javax.swing.JSeparator jSeparator4;
+    private javax.swing.JLabel lblMsg;
+    private javax.swing.JProgressBar pbarPacks;
+    private javax.swing.JProgressBar ptotal;
+    private javax.swing.JTextArea tempLog;
+    // End of variables declaration//GEN-END:variables
+}

+ 167 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSel.java

@@ -0,0 +1,167 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+import de.nplusc.izc.tools.UiToolz.BootStrap;
+import de.nplusc.izc.tools.UiToolz.UiTools;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+/**
+ *
+ * @author LH
+ */
+public class ModeSel// extends javax.swing.JFrame
+{
+    public static boolean silentMode=false;
+    public static boolean packMode = false;
+    public static String filePath = "";
+    public static boolean isBundle = false;
+    public static int topleft_coords_x = -1;//Detektion gegen diese Werte. -1=nicht initialisiert
+    public static int topleft_coords_y = -1;//^
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[])
+    {
+        //http://www.softicons.com/free-icons/application-icons/installer-icon-by-macuser64/installer-icon
+        //http://www.iconfinder.com/icondetails/61818/128/box_icon
+        //http://openclipart.org/detail/172351/ppa-icon-by-myromance123-172351
+        
+        //installs to C:\program files\iZsetup\
+        
+        //setDefauötPosition
+        //852, 331
+        topleft_coords_x = (UiTools.getScreenRes()[0]/2)-(852/2);
+        topleft_coords_y = (UiTools.getScreenRes()[1]/2)-(330/2);
+        
+        //args = new String[]{"-file",""
+        for (int i = 0; i < args.length; i++)
+        {
+            System.err.println(i+"|"+args[i]);
+            
+        }
+        //String file = "default.izsetup";
+        
+
+        //if(izsetupReader.getSysSpezSetupFile(file,true)!=null)
+        //{
+          //  packMode=true;
+        //}
+        //DSAB_FOR_DBG
+        //if(izsetupReader.getSysSpezSetupFile(file)==null&&!args[0].equals("-file"))
+        //{
+        //    return;
+        //}
+        String file="";
+        boolean enableFile = false;
+        if(args.length>1)
+        {
+            //Tester.main(args);
+            if(args[0].equals("-file"))
+            {
+                file=args[1];
+                enableFile = true;
+                //-file gamestls.izsetup --silent
+            }
+            if(args[0].equals("-bundle"))
+            {
+                file=args[1];
+                isBundle = true;
+                enableFile = true;
+                //-file gamestls.izsetup --silent
+            }
+            
+            for (String arg : args)
+            {
+                if(arg.equals("--silent"))
+                {
+
+                    silentMode=true;
+                    //packMode=false;
+                    if(izsetupReader.getSysSpezSetupFile(file,true)!=null)
+                    {
+                        packMode=true;
+                    }
+                    else
+                    {
+                        packMode=false;
+                    }
+                }
+                if(arg.equals("--pack"))
+                {
+                    packMode=true;
+
+                }
+            }
+        }
+        //DBG_START
+        //silentMode=false;
+        //packMode=false;
+        if(!enableFile)
+        {
+            System.out.println("Usage help for iZsetup CLI");
+            System.out.println("izsetup [-file|-bundle] <path> <options>");
+            System.out.println("-file for izsetup  or izpackage (requires --pack option to use izpackage");
+            System.out.println("--pack file is packfile");
+            System.out.println("--silent unattended mode");
+            return;
+        }
+        isBundle = true;
+        file="default.izbundle";
+        //DBG_END
+        System.err.println(file);
+        if(!isBundle&&!packMode)
+        {
+            InstallManager.Main.setInstallScript(file);
+        }
+        filePath=file;
+        try {
+	    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
+	} catch( ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e ) { 
+	    //e.printStackTrace();
+	}
+        java.awt.EventQueue.invokeLater(new Runnable()
+        {
+            @SuppressWarnings("ResultOfObjectAllocationIgnored")
+            @Override
+            public void run()
+            {
+                System.err.println(packMode+"|"+silentMode);
+                if(packMode&&!silentMode)
+                {
+                    new BootStrap(new PackagerGUI());
+                }
+                else
+                {
+                    if(silentMode)
+                    {
+                        if(!packMode)
+                        {
+                            InstallManager.Main.createQueue();                    
+                            new BootStrap(new InstallProgressGui());
+                        }
+                        else
+                        {
+                            PackManager p = new PackManager();
+                            p.loadPackageData(filePath);
+                            p.createQueue();
+                            new BootStrap(new InstallProgressGui(p.getQueue()));
+                        }
+                    }
+                    else
+                    {
+                        if(isBundle)
+                        {
+                            new BootStrap(new BundleVerifyGui(filePath));
+                        }
+                        else
+                        {
+                        new BootStrap(new ModeSelectionGUI());
+                        }
+                    }
+                }
+            }
+        });
+    }             
+}

+ 115 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSelectionGUI.form

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+    <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[852, 331]"/>
+    </Property>
+    <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[852, 331]"/>
+    </Property>
+    <Property name="resizable" type="boolean" value="false"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentMoved"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="0" pref="274" max="32767" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="btnInstall" min="-2" pref="334" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="234" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <Component id="btnCust" min="-2" pref="141" max="-2" attributes="0"/>
+                              <EmptySpace min="-2" pref="325" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="jSeparator1" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jSeparator2" max="32767" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="1" attributes="0">
+              <Group type="103" groupAlignment="1" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="76" max="-2" attributes="0"/>
+                      <Component id="btnInstall" min="-2" pref="104" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="btnCust" min="-2" pref="36" max="-2" attributes="0"/>
+                      <EmptySpace pref="76" max="32767" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jSeparator1" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+                          <Component id="jSeparator2" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+                      </Group>
+                  </Group>
+                  <Group type="102" attributes="0">
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JButton" name="btnInstall">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Installieren"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnInstallActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JButton" name="btnCust">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Anpassen"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCustActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator1">
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="izSetup 1.0.0 (c) 2012 iZc"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator2">
+    </Component>
+  </SubComponents>
+</Form>

+ 158 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/ModeSelectionGUI.java

@@ -0,0 +1,158 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+import de.nplusc.izc.tools.UiToolz.BootStrap;
+import java.awt.Point;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+/**
+ *
+ * @author LH
+ */
+public class ModeSelectionGUI extends javax.swing.JFrame
+{
+
+    /**
+     * Creates new form ModeSel
+     */
+    public ModeSelectionGUI()
+    {
+        initComponents();
+        updatePosition();
+    }
+    private void updatePosition()
+    {
+        Point p = new Point(ModeSel.topleft_coords_x, ModeSel.topleft_coords_y);
+        setLocation(p);
+    }
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        btnInstall = new javax.swing.JButton();
+        btnCust = new javax.swing.JButton();
+        jSeparator1 = new javax.swing.JSeparator();
+        jLabel1 = new javax.swing.JLabel();
+        jSeparator2 = new javax.swing.JSeparator();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        setMaximumSize(new java.awt.Dimension(852, 331));
+        setMinimumSize(new java.awt.Dimension(852, 331));
+        setResizable(false);
+        addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                formComponentMoved(evt);
+            }
+        });
+
+        btnInstall.setText("Installieren");
+        btnInstall.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnInstallActionPerformed(evt);
+            }
+        });
+
+        btnCust.setText("Anpassen");
+        btnCust.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnCustActionPerformed(evt);
+            }
+        });
+
+        jLabel1.setText("izSetup 1.0.0 (c) 2012 iZc");
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGap(0, 274, Short.MAX_VALUE)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                                .addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 334, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addGap(234, 234, 234))
+                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                                .addComponent(btnCust, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addGap(325, 325, 325))))
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jLabel1)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jSeparator2)
+                        .addContainerGap())))
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGap(76, 76, 76)
+                        .addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(18, 18, 18)
+                        .addComponent(btnCust, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 76, Short.MAX_VALUE)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(jSeparator2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                    .addGroup(layout.createSequentialGroup()
+                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(jLabel1)))
+                .addContainerGap())
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void btnCustActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnCustActionPerformed
+    {//GEN-HEADEREND:event_btnCustActionPerformed
+       SelectionGUI.main(null);
+       this.setVisible(false);
+    }//GEN-LAST:event_btnCustActionPerformed
+
+    private void btnInstallActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnInstallActionPerformed
+    {//GEN-HEADEREND:event_btnInstallActionPerformed
+        InstallManager.Main.createQueue();
+        InstallProgressGui.main(null);
+        this.setVisible(false);
+    }//GEN-LAST:event_btnInstallActionPerformed
+
+    private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
+    {//GEN-HEADEREND:event_formComponentMoved
+        ModeSel.topleft_coords_x = getLocation().x;
+        ModeSel.topleft_coords_y = getLocation().x;
+    }//GEN-LAST:event_formComponentMoved
+   public static void main(String args[])
+    {
+        try {
+	    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
+	} catch( ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e ) { 
+	    //e.printStackTrace();
+	}
+    }
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnCust;
+    private javax.swing.JButton btnInstall;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JSeparator jSeparator1;
+    private javax.swing.JSeparator jSeparator2;
+    // End of variables declaration//GEN-END:variables
+}

+ 278 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackManager.java

@@ -0,0 +1,278 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.IOtools.FileTK;
+import de.nplusc.izc.tools.IOtools.registryReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+
+/**
+ *
+ * @author LH
+ */
+public class PackManager
+{
+    private HashMap<String,ArrayList<String>> groupsplitted = new HashMap<>();
+    private String[] installingPacks,AllPacks,DetectedPacks,queue;
+    
+    /**
+     * Lädt die Liste aller Packs aus der aktiven Datei
+     * @return PAckliste im FOrmat ID|Name
+     * 
+     */
+    public String[] getPackList()
+    {
+        String[] ret = new String[AllPacks.length];
+        for (int i=0;i<AllPacks.length;i++)
+        {
+            String id=AllPacks[i];
+            ArrayList<String> group=groupsplitted.get(id);
+            for (String row : group)
+            {
+                String[] rowSplit = row.split("\\|");
+                if(rowSplit[1].equalsIgnoreCase("pack"))
+                    ret[i] = id+"|"+rowSplit[2];
+            }
+        }
+        return ret;
+    }
+    
+    public void loadPackageData(String path)
+    {
+        String[] data = izsetupReader.getSysSpezSetupFile(path,true,true);
+        String groupID="000"; 
+        String previousGRPID ="000";
+        
+        ArrayList<String> SubGroup = new ArrayList<>();
+        for (String line : data)
+        {
+            if(!(line.length()<6))
+            {
+                String[] splittedLine = line.split("\\|");
+                if(!splittedLine[0].equals("000"))
+                {
+                    groupID=splittedLine[0];
+                    if(!previousGRPID.equals(groupID)&&!previousGRPID.equals("000"))
+                    {
+                        groupsplitted.put(previousGRPID, SubGroup);//Einlagern der abgeschlossenen gruppe
+                        SubGroup = new ArrayList<>();//resetten für neue daten;
+                    }
+                    SubGroup.add(line);
+                    previousGRPID=groupID;
+
+                }
+            }
+        }
+        groupsplitted.put(previousGRPID, SubGroup);//die letzte auch noch einflanschen
+        String[] groupIDs = groupsplitted.keySet().toArray(new String[0]);
+        Arrays.sort(groupIDs);
+        AllPacks = groupIDs;
+        checkForpackInstalled();
+        ArrayList<String> installables = new ArrayList<>();
+        for (String id : AllPacks)
+        {
+            if(!packIsInstalled(id))
+                installables.add(id);
+        }
+        installingPacks = installables.toArray(new String[0]);
+        Arrays.sort(installingPacks);
+    }
+
+    public void setPackInstallState(String packid, boolean state)
+    {
+        boolean exists = false;
+        for (int i = 0; i < installingPacks.length; i++)
+        {
+            String id = installingPacks[i];
+            if(packid.equals(id))
+            {
+                exists=true;
+                if(!state)
+                {
+                    installingPacks[i]="";
+                }
+            }
+        }
+        ArrayList<String> newGrps = new ArrayList<>();
+        for (String cnt : installingPacks)
+        {
+            if(cnt.length()>1)
+            {
+                newGrps.add(cnt);
+            }
+        }
+        if(!exists&&state)
+        {
+            newGrps.add(packid);
+        }
+        installingPacks = newGrps.toArray(new String[0]);
+        newGrps = new ArrayList<>();
+        for (String cnt : installingPacks)
+        {
+            if(packIsInstallable(cnt))
+                newGrps.add(cnt);
+            
+        }
+        installingPacks = newGrps.toArray(new String[0]);
+    }
+    public boolean packIsInstallable(String packid)
+    {
+        return packIsInstallable(packid, false);
+    }
+    public boolean packIsInstallable(String packid,boolean blocksItself)
+    {
+        String reqPack = packDependency(packid);
+        
+        for (String pack : DetectedPacks)//Detektiere obDependency installiert(dependency erfüllt wenn pack bereits installiert
+        {
+            if(reqPack.equalsIgnoreCase(pack))
+                return true;
+        }
+        if(blocksItself)
+        {
+            for (String pack : installingPacks)//detektiere obDependency in installierliste
+            {
+                if(packid.equalsIgnoreCase(pack))
+                    return false;
+            }
+        }
+        for (String pack : installingPacks)//detektiere obDependency in installierliste
+        {
+            if(reqPack.equalsIgnoreCase(pack)&&packIsInstallable(reqPack))
+                return true;
+        }
+        if(reqPack.equals("none"))
+            return true;
+        return false;
+    }
+    
+    public boolean packIsInstalled(String packid)
+    {
+        for (String cntnt : DetectedPacks)
+        {
+            if(cntnt.equalsIgnoreCase(packid))
+                return true;
+        }
+        return false;
+    }
+    
+    
+    
+    public boolean packIsScheduled(String packid)
+    {
+        for (String cntnt : installingPacks)
+        {
+            if(cntnt.equalsIgnoreCase(packid))
+                return true;
+        }
+        return false;
+    }
+   
+    public String packDependency(String packid)
+    {
+        ArrayList<String> selectedPack = groupsplitted.get(packid);
+        //002|req|001|nummer des benötigten packs//kann weitere erfordernwenn
+        for (String line : selectedPack)
+        {
+            String[] linesegs = line.split("\\|");
+            if(linesegs[1].equalsIgnoreCase("req"))
+                return linesegs[2];
+        }
+        
+        
+        return "none";
+    }
+
+    //005|Description|Tools für die games aus dem Package
+    public String getPackDescription(String packid)
+    {
+        ArrayList<String> selectedPack = groupsplitted.get(packid);
+        for (String line : selectedPack)
+        {
+            String[] linesegs = line.split("\\|");
+            if(linesegs[1].equalsIgnoreCase("Description"))
+                return linesegs[2];
+        }
+        return "Error 0x0404: keine Beschreiubung gefunden";
+    }
+    
+    public String getPackName(String packid)
+    {
+        ArrayList<String> selectedPack = groupsplitted.get(packid);
+        for (String line : selectedPack)
+        {
+            String[] linesegs = line.split("\\|");
+            if(linesegs[1].equalsIgnoreCase("pack"))
+                return linesegs[2];
+        }
+        return "Error 0x0404: kein Name gefunden";
+    }
+    
+    
+    private void checkForpackInstalled()
+    {
+        ArrayList<String> installedPack = new ArrayList<>();
+        for (int i=0;i<AllPacks.length;i++)
+        {
+            String id=AllPacks[i];
+            ArrayList<String> group=groupsplitted.get(id);
+            for (String row : group)
+            {
+                String[] rowSplit = row.split("\\|");
+                if(rowSplit[1].equalsIgnoreCase("detectInstall"))
+                {
+                    String detecString = rowSplit[2];
+                    //CMM|File:// benutzt den DateiExistiert-operator
+                    //CMM|Reg:// detektiert unter Win auf Exitenz von Regwert
+                    if(detecString.substring(0,7).equalsIgnoreCase("File://"))
+                    {
+                        String detecpart = detecString.substring(7);
+                        if(FileTK.checkDirExist(detecpart))
+                        {
+                            installedPack.add(id);
+                        }
+                    }
+                    if(detecString.substring(0,6).equalsIgnoreCase("Reg://"))
+                    {
+                        String detecpart = detecString.substring(6);
+                        if(registryReader.checkExistenceOfRegKey(detecpart)||registryReader.checkExistenceOfRegKeyEntry(detecpart))
+                        {
+                            installedPack.add(id);
+                        }
+                    }
+                }
+            }
+        }
+        DetectedPacks = installedPack.toArray(new String[0]);
+    }
+    public void createQueue()
+    {
+        Arrays.sort(installingPacks);
+        ArrayList<String> queuetmp = new ArrayList<>();
+        for (String id : installingPacks)
+        {
+            ArrayList<String> grpldr =groupsplitted.get(id);
+            for (String line : grpldr)
+            {
+                String[] data = line.split("\\|");
+                if(data[1].equalsIgnoreCase("packfile"))
+                {
+                    queuetmp.add("packfile:"+data[2]);
+                }
+                if(data[1].equalsIgnoreCase("waitdisk"))
+                {
+                    queuetmp.add("waitdisk:"+data[2]);
+                }
+            }
+        }
+        queue=queuetmp.toArray(new String[0]);
+    }
+    public String[] getQueue()
+    {
+        return queue;
+    } 
+}

+ 199 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackagerGUI.form

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentMoved"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jLabel1" min="-2" pref="225" max="-2" attributes="0"/>
+                          <Component id="jScrollPane1" alignment="0" min="-2" pref="216" max="-2" attributes="0"/>
+                      </Group>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <EmptySpace min="-2" pref="34" max="-2" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="packStatus" min="-2" max="-2" attributes="0"/>
+                                  <Component id="packTitle" min="-2" pref="429" max="-2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <Group type="102" alignment="1" attributes="0">
+                              <EmptySpace type="unrelated" pref="12" max="32767" attributes="0"/>
+                              <Group type="103" groupAlignment="0" attributes="0">
+                                  <Component id="jButton1" min="-2" pref="597" max="-2" attributes="0"/>
+                                  <Component id="jScrollPane2" min="-2" pref="584" max="-2" attributes="0"/>
+                              </Group>
+                              <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                  </Group>
+                  <Group type="102" alignment="1" attributes="0">
+                      <Component id="jSeparator3" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="jSeparator1" min="-2" pref="642" max="-2" attributes="0"/>
+                      <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" attributes="0">
+                      <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+                      <Component id="packStatus" min="-2" max="-2" attributes="0"/>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" max="-2" attributes="0">
+                  <Group type="102" attributes="0">
+                      <Component id="packTitle" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace type="separate" max="-2" attributes="0"/>
+                      <Component id="jScrollPane2" min="-2" pref="137" max="-2" attributes="0"/>
+                      <EmptySpace max="32767" attributes="0"/>
+                      <Component id="jButton1" min="-2" pref="72" max="-2" attributes="0"/>
+                  </Group>
+                  <Component id="jScrollPane1" min="-2" pref="249" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace pref="20" max="32767" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jSeparator1" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+                  <Component id="jLabel2" alignment="1" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSeparator3" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTable" name="tblSelector">
+          <Properties>
+            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+              <Table columnCount="3" rowCount="1">
+                <Column editable="false" title="meta:id" type="java.lang.Object"/>
+                <Column editable="false" title="Name" type="java.lang.Object"/>
+                <Column editable="false" title="Status" type="java.lang.Object"/>
+              </Table>
+            </Property>
+            <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor" preCode="tblSelector.setColumnModel(new HidableTableColumnModel(tblSelector.getColumnModel()));">
+              <TableColumnModel selectionModel="0">
+                <Column maxWidth="-1" minWidth="-1" prefWidth="30" resizable="false">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="80" minWidth="80" prefWidth="80" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="-1" minWidth="-1" prefWidth="80" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+              </TableColumnModel>
+            </Property>
+            <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
+              <TableHeader reorderingAllowed="true" resizingAllowed="true"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="tblSelectorMouseClicked"/>
+          </Events>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTextArea" name="packDesc">
+          <Properties>
+            <Property name="columns" type="int" value="20"/>
+            <Property name="rows" type="int" value="5"/>
+          </Properties>
+          <Events>
+            <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="packDescComponentMoved"/>
+          </Events>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="packTitle">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="{PackTitle}"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="jButton1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Installation starten"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JLabel" name="packStatus">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="{DepDetails}"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Doppelklicken um Status zu &#xe4;ndern"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel2">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="izSetup 1.0.0 (c) 2012 iZc"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator1">
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator3">
+    </Component>
+  </SubComponents>
+</Form>

+ 374 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/PackagerGUI.java

@@ -0,0 +1,374 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.baseTools.HidableTableColumnModel;
+import java.awt.Point;
+import javax.swing.table.DefaultTableModel;
+
+/**
+ *
+ * @author LH
+ */
+public class PackagerGUI extends javax.swing.JFrame
+{
+
+    /**
+     * Creates new form PackagerGUI
+     */
+    private PackManager p;
+    public PackagerGUI()
+    {
+        initComponents();
+        updatePosition();
+        packStatus.setVisible(false);
+        p = new PackManager();
+        p.loadPackageData(ModeSel.filePath);
+        ((HidableTableColumnModel)(tblSelector.getColumnModel())).setColumnVisible(0, false);
+        //^auskommentieren um id-spalte sichtbar zu bekommenTempcode fürs Testen
+        int rows=1;
+        String[] tablefill = p.getPackList();
+        for (int i = 0; i < tablefill.length; i++)
+        {
+            String GRP = tablefill[i];
+            String[] data = GRP.split("\\|");
+            if(i>=rows)
+                ((DefaultTableModel)tblSelector.getModel()).addRow(new String[3]);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[0], i, 0);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[1], i, 1);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", i, 2);
+            if(p.packIsInstalled(data[0]))
+            {
+                ((DefaultTableModel)tblSelector.getModel()).setValueAt("Bereits installiert", i, 2);
+            }
+        }
+    }
+    private void updatePosition()
+    {
+        Point p = new Point(ModeSel.topleft_coords_x, ModeSel.topleft_coords_y);
+        setLocation(p);
+    }
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        jScrollPane1 = new javax.swing.JScrollPane();
+        tblSelector = new javax.swing.JTable();
+        jScrollPane2 = new javax.swing.JScrollPane();
+        packDesc = new javax.swing.JTextArea();
+        packTitle = new javax.swing.JLabel();
+        jButton1 = new javax.swing.JButton();
+        packStatus = new javax.swing.JLabel();
+        jLabel1 = new javax.swing.JLabel();
+        jLabel2 = new javax.swing.JLabel();
+        jSeparator1 = new javax.swing.JSeparator();
+        jSeparator3 = new javax.swing.JSeparator();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                formComponentMoved(evt);
+            }
+        });
+
+        tblSelector.setModel(new javax.swing.table.DefaultTableModel(
+            new Object [][]
+            {
+                {null, null, null}
+            },
+            new String []
+            {
+                "meta:id", "Name", "Status"
+            }
+        )
+        {
+            boolean[] canEdit = new boolean []
+            {
+                false, false, false
+            };
+
+            public boolean isCellEditable(int rowIndex, int columnIndex)
+            {
+                return canEdit [columnIndex];
+            }
+        });
+        tblSelector.addMouseListener(new java.awt.event.MouseAdapter()
+        {
+            public void mouseClicked(java.awt.event.MouseEvent evt)
+            {
+                tblSelectorMouseClicked(evt);
+            }
+        });
+        jScrollPane1.setViewportView(tblSelector);
+        tblSelector.setColumnModel(new HidableTableColumnModel(tblSelector.getColumnModel()));
+        tblSelector.getColumnModel().getColumn(0).setResizable(false);
+        tblSelector.getColumnModel().getColumn(0).setPreferredWidth(30);
+        tblSelector.getColumnModel().getColumn(1).setMinWidth(80);
+        tblSelector.getColumnModel().getColumn(1).setPreferredWidth(80);
+        tblSelector.getColumnModel().getColumn(1).setMaxWidth(80);
+        tblSelector.getColumnModel().getColumn(2).setPreferredWidth(80);
+
+        packDesc.setColumns(20);
+        packDesc.setRows(5);
+        packDesc.addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                packDescComponentMoved(evt);
+            }
+        });
+        jScrollPane2.setViewportView(packDesc);
+
+        packTitle.setText("{PackTitle}");
+
+        jButton1.setText("Installation starten");
+        jButton1.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                jButton1ActionPerformed(evt);
+            }
+        });
+
+        packStatus.setText("{DepDetails}");
+
+        jLabel1.setText("Doppelklicken um Status zu ändern");
+
+        jLabel2.setText("izSetup 1.0.0 (c) 2012 iZc");
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
+                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(layout.createSequentialGroup()
+                                .addGap(34, 34, 34)
+                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addComponent(packStatus)
+                                    .addComponent(packTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 429, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 12, Short.MAX_VALUE)
+                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 597, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 584, javax.swing.GroupLayout.PREFERRED_SIZE))
+                                .addGap(8, 8, 8))))
+                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+                        .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jLabel2)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 642, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addGap(10, 10, 10)))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addGap(17, 17, 17)
+                        .addComponent(packStatus))
+                    .addGroup(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .addComponent(jLabel1)))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(packTitle)
+                        .addGap(18, 18, 18)
+                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))
+                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(jSeparator3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void tblSelectorMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_tblSelectorMouseClicked
+    {//GEN-HEADEREND:event_tblSelectorMouseClicked
+        int x = tblSelector.getSelectedRow();
+        String packid=(String)((DefaultTableModel)tblSelector.getModel()).getValueAt(x, 0);
+        boolean sel = p.packIsScheduled(packid);
+        if(evt.getClickCount()==2)
+        {
+            if(sel==false&&p.packIsInstallable(packid))
+            {
+                sel=true;
+            }
+            else
+            {
+                sel=false;
+            }
+            p.setPackInstallState(packid, sel);
+        }
+        rebuildTable();
+        String _packTitle = p.getPackName(packid);
+        String packDescr = p.getPackDescription(packid);
+        packTitle.setText(_packTitle);
+        packDesc.setText(packDescr);
+    }//GEN-LAST:event_tblSelectorMouseClicked
+
+    private String[] handoverqueue;
+    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
+    {//GEN-HEADEREND:event_jButton1ActionPerformed
+        p.createQueue();
+        handoverqueue = p.getQueue();
+        new Thread(new Runnable()
+        {
+            @Override
+            @SuppressWarnings("SleepWhileInLoop")
+            public void run()
+            {
+                new InstallProgressGui(handoverqueue).setVisible(true);
+            }
+        }).start();
+        this.setVisible(false);
+    }//GEN-LAST:event_jButton1ActionPerformed
+
+    private void packDescComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_packDescComponentMoved
+    {//GEN-HEADEREND:event_packDescComponentMoved
+        //NOP
+    }//GEN-LAST:event_packDescComponentMoved
+
+    private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
+    {//GEN-HEADEREND:event_formComponentMoved
+        ModeSel.topleft_coords_x = getLocation().x;
+        ModeSel.topleft_coords_y = getLocation().x;
+    }//GEN-LAST:event_formComponentMoved
+
+    private void rebuildTable()
+    {
+        String[] tablefill = p.getPackList();
+        for (int i = 0; i < tablefill.length; i++)
+        {
+            String GRP = tablefill[i];
+            String[] data = GRP.split("\\|");
+            String packid = data[0];
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[0], i, 0);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[1], i, 1);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt("0xFA11", i, 2);
+            if(p.packIsScheduled(packid))
+            {
+                System.err.println(packid+"|sched");
+                ((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", i, 2);
+            }
+            else
+            {
+                if(p.packIsInstalled(data[0]))
+                {
+                    System.err.println(packid+"|exis");
+                    ((DefaultTableModel)tblSelector.getModel()).setValueAt("Bereits installiert", i, 2);
+                }
+                else
+                {
+                    if(!p.packIsInstallable(packid))
+                    {
+                        String depName = ""; 
+                        String depID = p.packDependency(data[0]);
+                        try
+                        {
+                        depName = p.getPackName(depID);
+                        }
+                        catch(Exception e)
+                        {
+                        }
+                        System.err.println(packid+"|reqdep:"+depID);
+                        ((DefaultTableModel)tblSelector.getModel()).setValueAt(depName+" benötigt", i, 2);
+                    }
+                    else
+                    {
+                        ((DefaultTableModel)tblSelector.getModel()).setValueAt("Abgewählt", i, 2);
+                    }
+                }
+            }
+        }
+    }
+            
+    
+    /**
+     * @param args the command line arguments
+     */    
+    public static void main(String args[])
+    {
+        /* Set the Nimbus look and feel */
+        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
+         */
+        try
+        {
+            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
+            {
+                if ("Nimbus".equals(info.getName()))
+                {
+                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
+                    break;
+                }
+            }
+        }
+        catch (ClassNotFoundException ex)
+        {
+            java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (InstantiationException ex)
+        {
+            java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (IllegalAccessException ex)
+        {
+            java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        catch (javax.swing.UnsupportedLookAndFeelException ex)
+        {
+            java.util.logging.Logger.getLogger(PackagerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        //</editor-fold>
+
+        /* Create and display the form */
+        java.awt.EventQueue.invokeLater(new Runnable()
+        {
+            public void run()
+            {
+                new PackagerGUI().setVisible(true);
+            }
+        });
+    }
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton jButton1;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JLabel jLabel2;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JScrollPane jScrollPane2;
+    private javax.swing.JSeparator jSeparator1;
+    private javax.swing.JSeparator jSeparator3;
+    private javax.swing.JTextArea packDesc;
+    private javax.swing.JLabel packStatus;
+    private javax.swing.JLabel packTitle;
+    private javax.swing.JTable tblSelector;
+    // End of variables declaration//GEN-END:variables
+}

+ 142 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/SelectionGUI.form

@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+  </SyntheticProperties>
+  <Events>
+    <EventHandler event="componentMoved" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentMoved"/>
+  </Events>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jSeparator1" min="-2" pref="50" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="jSeparator2" max="32767" attributes="0"/>
+                  </Group>
+                  <Group type="102" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="102" attributes="0">
+                              <EmptySpace max="-2" attributes="0"/>
+                              <Component id="jScrollPane1" min="-2" pref="420" max="-2" attributes="0"/>
+                          </Group>
+                          <Group type="102" alignment="0" attributes="0">
+                              <EmptySpace min="-2" pref="55" max="-2" attributes="0"/>
+                              <Component id="btnInstall" min="-2" pref="342" max="-2" attributes="0"/>
+                          </Group>
+                      </Group>
+                      <EmptySpace min="0" pref="412" max="32767" attributes="0"/>
+                  </Group>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="jScrollPane1" min="-2" pref="185" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="btnInstall" min="-2" pref="61" max="-2" attributes="0"/>
+              <EmptySpace pref="43" max="32767" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jLabel1" alignment="1" min="-2" max="-2" attributes="0"/>
+                  <Component id="jSeparator1" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+                  <Component id="jSeparator2" alignment="1" min="-2" pref="10" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JButton" name="btnInstall">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Install"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnInstallActionPerformed"/>
+      </Events>
+    </Component>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTable" name="tblSelector">
+          <Properties>
+            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+              <Table columnCount="3" rowCount="1">
+                <Column editable="false" title="meta:id" type="java.lang.String"/>
+                <Column editable="false" title="Name" type="java.lang.String"/>
+                <Column editable="false" title="Status" type="java.lang.String"/>
+              </Table>
+            </Property>
+            <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
+              <TableColumnModel selectionModel="1">
+                <Column maxWidth="-1" minWidth="-1" prefWidth="1" resizable="false">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+                <Column maxWidth="120" minWidth="120" prefWidth="120" resizable="true">
+                  <Title/>
+                  <Editor/>
+                  <Renderer/>
+                </Column>
+              </TableColumnModel>
+            </Property>
+            <Property name="columnSelectionAllowed" type="boolean" value="true"/>
+            <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
+              <TableHeader reorderingAllowed="false" resizingAllowed="true"/>
+            </Property>
+          </Properties>
+          <Events>
+            <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="tblSelectorMouseClicked"/>
+          </Events>
+          <AuxValues>
+            <AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="tblSelector.setColumnModel(new HidableTableColumnModel(tblSelector.getColumnModel()));"/>
+          </AuxValues>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="jLabel1">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="izSetup 1.0.0 (c) 2012 iZc"/>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator1">
+    </Component>
+    <Component class="javax.swing.JSeparator" name="jSeparator2">
+    </Component>
+  </SubComponents>
+</Form>

+ 237 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/SelectionGUI.java

@@ -0,0 +1,237 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.baseTools.HidableTableColumnModel;
+import java.awt.Point;
+import javax.swing.UIManager;
+import javax.swing.table.DefaultTableModel;
+
+/**
+ *
+ * @author LH
+ */
+public class SelectionGUI extends javax.swing.JFrame
+{
+    /**
+     * Creates new form SelectionGUI
+     */
+    InstallManager im = InstallManager.Main;
+    public SelectionGUI()
+    {
+        initComponents();
+        updatePosition();
+        ((HidableTableColumnModel)(tblSelector.getColumnModel())).setColumnVisible(0, false);
+        //^Tempcode fürs Testen
+        int rows=1;
+        String[] tablefill = im.getToggleAblePrograms();
+        for (int i = 0; i < tablefill.length; i++)
+        {
+            String GRP = tablefill[i];
+            String[] data = GRP.split("\\|");
+            if(i>=rows)
+                ((DefaultTableModel)tblSelector.getModel()).addRow(new String[3]);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[0], i, 0);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt(data[1], i, 1);
+            ((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", i, 2);
+        }
+        
+    }
+    private void updatePosition()
+    {
+        Point p = new Point(ModeSel.topleft_coords_x, ModeSel.topleft_coords_y);
+        setLocation(p);
+    }
+    /**
+     * This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents()
+    {
+
+        btnInstall = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        tblSelector = new javax.swing.JTable();
+        jLabel1 = new javax.swing.JLabel();
+        jSeparator1 = new javax.swing.JSeparator();
+        jSeparator2 = new javax.swing.JSeparator();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+        addComponentListener(new java.awt.event.ComponentAdapter()
+        {
+            public void componentMoved(java.awt.event.ComponentEvent evt)
+            {
+                formComponentMoved(evt);
+            }
+        });
+
+        btnInstall.setText("Install");
+        btnInstall.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnInstallActionPerformed(evt);
+            }
+        });
+
+        tblSelector.setModel(new javax.swing.table.DefaultTableModel(
+            new Object [][]
+            {
+                {null, null, null}
+            },
+            new String []
+            {
+                "meta:id", "Name", "Status"
+            }
+        )
+        {
+            Class[] types = new Class []
+            {
+                java.lang.String.class, java.lang.String.class, java.lang.String.class
+            };
+            boolean[] canEdit = new boolean []
+            {
+                false, false, false
+            };
+
+            public Class getColumnClass(int columnIndex)
+            {
+                return types [columnIndex];
+            }
+
+            public boolean isCellEditable(int rowIndex, int columnIndex)
+            {
+                return canEdit [columnIndex];
+            }
+        });
+        tblSelector.setColumnSelectionAllowed(true);
+        tblSelector.getTableHeader().setReorderingAllowed(false);
+        tblSelector.setColumnModel(new HidableTableColumnModel(tblSelector.getColumnModel()));
+        tblSelector.addMouseListener(new java.awt.event.MouseAdapter()
+        {
+            public void mouseClicked(java.awt.event.MouseEvent evt)
+            {
+                tblSelectorMouseClicked(evt);
+            }
+        });
+        jScrollPane1.setViewportView(tblSelector);
+        tblSelector.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+        tblSelector.getColumnModel().getColumn(0).setResizable(false);
+        tblSelector.getColumnModel().getColumn(0).setPreferredWidth(1);
+        tblSelector.getColumnModel().getColumn(2).setMinWidth(120);
+        tblSelector.getColumnModel().getColumn(2).setPreferredWidth(120);
+        tblSelector.getColumnModel().getColumn(2).setMaxWidth(120);
+
+        jLabel1.setText("izSetup 1.0.0 (c) 2012 iZc");
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addContainerGap()
+                        .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jLabel1)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(jSeparator2))
+                    .addGroup(layout.createSequentialGroup()
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addGroup(layout.createSequentialGroup()
+                                .addContainerGap()
+                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 420, javax.swing.GroupLayout.PREFERRED_SIZE))
+                            .addGroup(layout.createSequentialGroup()
+                                .addGap(55, 55, 55)
+                                .addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 342, javax.swing.GroupLayout.PREFERRED_SIZE)))
+                        .addGap(0, 412, Short.MAX_VALUE)))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnInstall, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 43, Short.MAX_VALUE)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)
+                    .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jSeparator2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addContainerGap())
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    private void btnInstallActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnInstallActionPerformed
+    {//GEN-HEADEREND:event_btnInstallActionPerformed
+        InstallManager.Main.createQueue();
+        InstallProgressGui.main(null);
+            this.setVisible(false);
+    }//GEN-LAST:event_btnInstallActionPerformed
+
+    private void tblSelectorMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_tblSelectorMouseClicked
+    {//GEN-HEADEREND:event_tblSelectorMouseClicked
+                //int y = tblSelector.getSelectedColumn();
+        int x = tblSelector.getSelectedRow();
+        boolean sel = ((DefaultTableModel)tblSelector.getModel()).getValueAt(x, 2).equals("Wird installiert");
+        //if(evt.getClickCount()==2)
+        {
+            if(sel==false)
+            {
+                ((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird installiert", x, 2);
+                sel=true;
+            }
+            else
+            {
+                ((DefaultTableModel)tblSelector.getModel()).setValueAt("Wird nicht installiert", x, 2);
+                sel=false;
+            }
+            im.setGroupState((String)((DefaultTableModel)tblSelector.getModel()).getValueAt(x, 0), sel);
+        }
+        
+    }//GEN-LAST:event_tblSelectorMouseClicked
+
+    private void formComponentMoved(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentMoved
+    {//GEN-HEADEREND:event_formComponentMoved
+        ModeSel.topleft_coords_x = getLocation().x;
+        ModeSel.topleft_coords_y = getLocation().x;
+    }//GEN-LAST:event_formComponentMoved
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[])
+    {
+                        try {
+	    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
+	} catch( Exception e ) { 
+	    //e.printStackTrace();
+	}
+        /* Create and display the form */
+        java.awt.EventQueue.invokeLater(new Runnable()
+        {
+            public void run()
+            {
+                new SelectionGUI().setVisible(true);
+            }
+        });
+    }
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnInstall;
+    private javax.swing.JLabel jLabel1;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JSeparator jSeparator1;
+    private javax.swing.JSeparator jSeparator2;
+    private javax.swing.JTable tblSelector;
+    // End of variables declaration//GEN-END:variables
+}

+ 20 - 20
IZSetup/src/de/nplusc/izc/InstallPak/Tester.java → IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/Tester.java

@@ -1,20 +1,20 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package de.nplusc.izc.InstallPak;
-
-import de.nplusc.izc.tools.IOtools.ZipFileHandler;
-
-/**
- *
- * @author LH
- */
-public class Tester
-{
-    public static void main(String args[])
-    {
-       
-        new ZipFileHandler("D:\\zip\\burnme2\\PSPDevsrc1.zip").extractAllToDiskWithMonitoringProgressbar(null, null);
-    }
-}
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+import de.nplusc.izc.tools.IOtools.ZipFileHandler;
+
+/**
+ *
+ * @author LH
+ */
+public class Tester
+{
+    public static void main(String args[])
+    {
+       
+        new ZipFileHandler("D:\\zip\\burnme2\\PSPDevsrc1.zip").extractAllToDiskWithMonitoringProgressbar(null, null);
+    }
+}

+ 9 - 9
IZSetup/src/de/nplusc/izc/InstallPak/bundle.izmeta → IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/bundle.izmeta

@@ -1,10 +1,10 @@
-000|izsetup|1.0.0
-000|type|bundle|nur für uer (der kommentar)
-001|meta:isZipped|true|
-CMM|meta:isZipped: bei false sind die dateien als normale dateien neben dieser bundle gelagert -> kein entzippern
-CMM|in tempdir nötig. Muss bei multidisk-bundles deaktiviert sein. bei diskbundles wird Deaktivierung empfohlen
-CMM|da es die Festplatte nicht so vollstopft
-001|bundlename|Testbundle
-001|packagedata|packs.izpackage|muss im basedir des Bundles liegen(!!!!!!!!!!!!!!!!!!!!!!!!!!)
-001|Description|Test für bundleGui
+000|izsetup|1.0.0
+000|type|bundle|nur für uer (der kommentar)
+001|meta:isZipped|true|
+CMM|meta:isZipped: bei false sind die dateien als normale dateien neben dieser bundle gelagert -> kein entzippern
+CMM|in tempdir nötig. Muss bei multidisk-bundles deaktiviert sein. bei diskbundles wird Deaktivierung empfohlen
+CMM|da es die Festplatte nicht so vollstopft
+001|bundlename|Testbundle
+001|packagedata|packs.izpackage|muss im basedir des Bundles liegen(!!!!!!!!!!!!!!!!!!!!!!!!!!)
+001|Description|Test für bundleGui
 001|extractSize|10000|Angabe in Bytes. wird von GUI konvertiert.

+ 14 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/izBundleReadIn.java

@@ -0,0 +1,14 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+
+/**
+ *
+ * @author LH
+ */
+public class izBundleReadIn
+{
+    
+}

+ 399 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/izsetupReader.java

@@ -0,0 +1,399 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.nplusc.izc.InstallPak;
+import de.nplusc.izc.tools.IOtools.FileTK;
+import de.nplusc.izc.tools.IOtools.registryReader;
+import de.nplusc.izc.tools.baseTools.Detectors;
+import de.nplusc.izc.tools.baseTools.Tools;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+
+/**
+ *
+ * @author LH
+ */
+public class izsetupReader
+{
+    private static HashMap<String,ArrayList<String>> groupsplitted = new HashMap<>();
+    
+    /**
+     * Verarbeitet iZsetup-Daten
+     * @param content der String mit dem SetupFile
+     * @param packagesOnly ob packagefiles als einzigesdurch dürfen
+     * @param dbgenab debugmode (gint content auf err-stream aus)?
+     * @param baseDir baasedir für #basedir#-ersetzung
+     * @return konvertiertes file
+     */
+    public static String[] ConvertToSysSpezSetupFile(String content, boolean packagesOnly,boolean dbgenab,String baseDir)
+    {
+        groupsplitted = new HashMap<>();
+        String[] rawFile = content.split("\\n");
+        if(!rawFile[0].startsWith("000|izsetup|1.0.0|"))
+        {
+            return null;//geht nur bei gültiger magischer kennung weiter
+        }
+        ArrayList<String> SubGroup = new ArrayList<>();
+        String previousGRPID="000";
+        String groupID="000";
+        boolean isPak = true;
+        if(packagesOnly)
+        {
+            isPak=false;
+        }
+        for (String line : rawFile)
+        {
+            if(dbgenab)
+            {
+                System.err.println("RAW>>>"+line);
+            }
+            
+            if(!(line.length()<6))
+            {
+                String[] splittedLine = line.split("\\|");
+                //DBG_START
+               // System.err.println(splittedLine[0]+"|GRP");
+               // System.err.println(splittedLine[1]+"|KEY");
+               // System.err.println(splittedLine[2]+"|VAL");
+               // System.err.println(splittedLine[3]+"|CMNT");
+                //DBG_STOP
+                
+                boolean _999 = false;
+                if(packagesOnly)
+                {
+                    
+                    if(splittedLine[0].equals("999"))
+                        _999=true;
+                }
+                if(!splittedLine[0].equals("000")&&!_999&&isPak)
+                {
+                    groupID=splittedLine[0];
+                    if(!splittedLine[0].equalsIgnoreCase("CMM"))
+                    {
+                        if(!previousGRPID.equals(groupID)&&!previousGRPID.equals("000"))
+                        {
+                            groupsplitted.put(previousGRPID, SubGroup);//Einlagern der abgeschlossenen gruppe
+                            SubGroup = new ArrayList<>();//resetten für neue daten;
+                        }
+                        
+                        line = Tools.processEnvVarsinLine(line);
+                        line = Tools.replaceHashmarkedVars(line, "basedir", baseDir);
+                        //Detectfor envvars
+                        
+                        //FileTK.
+                        //line = line.re
+                        //#basedir# durch pfad von izSetup-file ersetzen
+                        //userprofile-variable und appdata-variable unterstützt
+                        SubGroup.add(line);
+                        if(dbgenab)
+                            System.err.println(line);
+                        previousGRPID=groupID;
+                    }
+
+                }
+                else
+                {
+                    //000|type|script|
+                    if(splittedLine[1].equalsIgnoreCase("type")
+                            &&packagesOnly
+                            &&!isPak
+                            &&((!splittedLine[2].equalsIgnoreCase("packages"))||(!splittedLine[2].equalsIgnoreCase("package")))
+                            )
+                    {
+                        isPak=true;//errort aus wenn nur packagefiles erlaubt aber ein normales file kommt
+                    }
+                }
+            }
+        }
+        groupsplitted.put(previousGRPID, SubGroup);
+        ArrayList<String> returnValuesTemp = new ArrayList<>();
+        String[] groupids = groupsplitted.keySet().toArray(new String[0]);
+        for (String key : groupids)
+        {
+            clearGroupFromCrap(key);//ausgelagert um Coide zu entwirren
+        }
+        Arrays.sort(groupids);
+        for (String key : groupids)
+        {
+            ArrayList<String> GC= groupsplitted.get(key);
+            for (String val : GC)
+            {
+                returnValuesTemp.add(val);
+            }
+        }
+        String[] ret = returnValuesTemp.toArray(new String[0]);
+        return ret;
+    }
+    
+    
+    
+   /**
+    * Verarbeitet iZsetup-Daten
+    * @param filepath datei des files
+    * @return konvertiertes setuoFile
+    */
+    public static String[] getSysSpezSetupFile(String filepath)
+    {
+        return getSysSpezSetupFile(filepath,false);
+    }
+    
+    
+    /**
+     * Verarbeitet iZsetup-Daten
+     * @param filepath dateipfad des files
+     * @param packagesOnly ob nur packfiles gelesenwerden dürfen
+     * @return konvertiertes file
+     */
+            
+    public static String[] getSysSpezSetupFile(String filepath, boolean packagesOnly)
+    {
+        return getSysSpezSetupFile(filepath, packagesOnly,false);
+    }
+    
+    /**
+     * 
+     * Verarbeitet iZsetup-Daten
+     * @param filepath dateipfad des files
+     * @param packagesOnly ob nur packfiles gelesenwerden dürfen
+     * @param dbgenab debugmode (gint content auf err-stream aus)?
+     * @return konvertiertes file
+     */
+    public static String[] getSysSpezSetupFile(String filepath, boolean packagesOnly,boolean dbgenab)
+    {
+        groupsplitted = new HashMap<>();
+        String[] rawFile = FileTK.fileload(filepath, false);
+        if(!rawFile[0].startsWith("000|izsetup|1.0.0|"))
+        {
+            return null;//geht nur bei gültiger magischer kennung weiter
+        }
+        ArrayList<String> SubGroup = new ArrayList<>();
+        String previousGRPID="000";
+        String groupID="000";
+        boolean isPak = true;
+        if(packagesOnly)
+        {
+            isPak=false;
+        }
+        for (String line : rawFile)
+        {
+            if(!(line.length()<6))
+            {
+                String[] splittedLine = line.split("\\|");
+                //DBG_START
+               // System.err.println(splittedLine[0]+"|GRP");
+               // System.err.println(splittedLine[1]+"|KEY");
+               // System.err.println(splittedLine[2]+"|VAL");
+               // System.err.println(splittedLine[3]+"|CMNT");
+                //DBG_STOP
+                
+                boolean _999 = false;
+                if(packagesOnly)
+                {
+                    
+                    if(splittedLine[0].equals("999"))
+                        _999=true;
+                }
+                if(!splittedLine[0].equals("000")&&!_999&&isPak)
+                {
+                    groupID=splittedLine[0];
+                    if(!splittedLine[0].equalsIgnoreCase("CMM"))
+                    {
+                        if(!previousGRPID.equals(groupID)&&!previousGRPID.equals("000"))
+                        {
+                            groupsplitted.put(previousGRPID, SubGroup);//Einlagern der abgeschlossenen gruppe
+                            SubGroup = new ArrayList<>();//resetten für neue daten;
+                        }
+                        
+                        line = Tools.processEnvVarsinLine(line);
+                        String baseDir = FileTK.getFilePath(filepath);
+                        line = Tools.replaceHashmarkedVars(line, "basedir", baseDir);
+                        //Detectfor envvars
+                        
+                        //FileTK.
+                        //line = line.re
+                        //#basedir# durch pfad von izSetup-file ersetzen
+                        //userprofile-variable und appdata-variable unterstützt
+                        SubGroup.add(line);
+                        if(dbgenab)
+                            System.err.println(line);
+                        previousGRPID=groupID;
+                    }
+
+                }
+                else
+                {
+                    //000|type|script|
+                    if(splittedLine[1].equalsIgnoreCase("type")
+                            &&packagesOnly
+                            &&!isPak
+                            &&((!splittedLine[2].equalsIgnoreCase("packages"))||(!splittedLine[2].equalsIgnoreCase("package")))
+                            )
+                    {
+                        isPak=true;//errort aus wenn nur packagefiles erlaubt aber ein normales file kommt
+                    }
+                }
+            }
+        }
+        groupsplitted.put(previousGRPID, SubGroup);
+        ArrayList<String> returnValuesTemp = new ArrayList<>();
+        String[] groupids = groupsplitted.keySet().toArray(new String[0]);
+        for (String key : groupids)
+        {
+            clearGroupFromCrap(key);//ausgelagert um Coide zu entwirren
+        }
+        Arrays.sort(groupids);
+        for (String key : groupids)
+        {
+            ArrayList<String> GC= groupsplitted.get(key);
+            for (String val : GC)
+            {
+                returnValuesTemp.add(val);
+            }
+        }
+        String[] ret = returnValuesTemp.toArray(new String[0]);
+        return ret;
+    }
+    /*
+    public static void main(String args[])
+    {
+        //NOP
+    }*/
+                    
+    private static void clearGroupFromCrap(String groupkey)
+    {
+        ArrayList<String> GroupContentPP = groupsplitted.get(groupkey);//wird später durch ne neue List ersetzt
+        String[] Groupcontent  = GroupContentPP.toArray(new String[0]);
+        for (int i = 0; i < Groupcontent.length; i++)
+        {
+            String line = Groupcontent[i];
+            if(line.length()>0)
+            {
+                String[] linesegs = line.split("\\|");
+                if(linesegs[1].startsWith("cond"))
+                {
+                    String condelsemarker="else"+linesegs[1];
+                    String condendmarker="end"+linesegs[1];
+                    int elseline = 0,endline=0;
+                    boolean conditionsClear = false;
+                    if(linesegs[2].equalsIgnoreCase("IsWin8"))
+                    {
+                        conditionsClear =Detectors.detectIsWin8();
+                    }
+                    if(linesegs[2].equalsIgnoreCase("Is64Bit")&&!conditionsClear)
+                    {
+                        conditionsClear = Detectors.detect64bitWinon7and8();
+                    }
+                    if(linesegs[2].equalsIgnoreCase("IsWinXP")&&!conditionsClear)
+                    {
+                        conditionsClear = Detectors.detectWInXP();
+                    }
+                    if(linesegs[2].equalsIgnoreCase("IsWin7")&&!conditionsClear)
+                    {
+                        conditionsClear = Detectors.detectWin7();
+                    }
+                    if(linesegs[2].startsWith("PathExists:"))
+                    {
+                        conditionsClear = FileTK.checkDirExist(linesegs[2].substring(11));//kann zum Erkennen beliebiger Programme genutzt werden
+                    }
+                    if(linesegs[2].startsWith("RegKeyExists:"))
+                    {
+                        // prüft Registryeinträge//sollte hinter ne CheckWIndows geglemmt werden
+                        conditionsClear = registryReader.checkExistenceOfRegKey(linesegs[2].substring(13));
+                        if(!conditionsClear)
+                        {
+                            conditionsClear = registryReader.checkExistenceOfRegKeyEntry(linesegs[2].substring(13));
+                        }
+                    }
+                    Groupcontent[i]="";
+                    if(!conditionsClear)
+                    //<editor-fold defaultstate="collapsed" desc="BEdingung nicht erfüllt">
+                    {
+                        boolean elseContained= false;
+                        //int endofCond = 0;
+                        for (int j = i; j < Groupcontent.length; j++)
+                        {
+                            
+                            String linei = Groupcontent[j];
+                            //System.err.println("XXX"+linei);
+                            
+                            if(linei.length()>0)
+                            {
+                                String[] linesegsi = linei.split("\\|");
+                                if(linesegsi[1].startsWith(condelsemarker))
+                                {
+                                    elseline=j;
+                                    Groupcontent[j]="";
+                                    elseContained=true;
+                                    for (int k = i; k < j; k++)
+                                    {
+                                        Groupcontent[k]="";//entfernt die nicht passenden Werte
+                                    }
+                                }
+                                if(linesegsi[1].startsWith(condendmarker))
+                                {
+                                    endline=j;
+                                    Groupcontent[j]="";
+                                    if(!elseContained)
+                                    {
+                                        for (int k = i; k < j; k++)
+                                        {
+                                            Groupcontent[k]="";//entfernt die nicht passenden Werte
+                                            
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    //</editor-fold>
+                    else
+                    //<editor-fold defaultstate="collapsed" desc="BEdingung erfüllt">
+                    {
+                        boolean elseContained= false;
+                        for (int j = i; j < Groupcontent.length; j++)
+                        {
+                            String linei = Groupcontent[j];
+                            //System.err.println("|||"+linei);
+                            if(linei.length()>0)
+                            {
+                                String[] linesegsi = linei.split("\\|");
+                                if(linesegsi[1].startsWith(condelsemarker))
+                                {
+                                    elseline=j;
+                                    Groupcontent[j]="";
+                                    elseContained=true;
+                                }
+                                if(linesegsi[1].startsWith(condendmarker))
+                                {
+                                    endline=j;
+                                    Groupcontent[j]="";
+                                    if(elseContained)
+                                    {
+                                        for (int k = elseline; k < j; k++)
+                                        {
+                                            Groupcontent[k]="";//entfernt die nicht passenden Werte
+                                            
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    //</editor-fold>
+                }
+            }
+        }
+        
+        
+        
+     GroupContentPP = new ArrayList<>();
+        for (String string : Groupcontent)
+        {
+            if(!string.isEmpty())
+                GroupContentPP.add(string);
+        }
+        groupsplitted.put(groupkey, GroupContentPP);
+    }
+}

+ 64 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/tempalte.izpackage

@@ -0,0 +1,64 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+000|type|packages|dient nur zur unterscheidung von packagefiles
+000|||packagefiles unterstützen Conds genauso
+000|flag|multidisk|dieses Flag aktivirt den Multidisk-Modus
+CMM|Inline-COmment-funktion
+CMM|Multidisk-Modus=Dateien werden nicht auf Temp kopiert und bei nem WaitDisk
+CMM|kommt ne Aufforderung die nächste Disk einzulegen
+CMM|der dateiname danach sagt auf welche datei geschaut wird
+001|pack|BaseSystem|Name de Packages das in der Anicht auftaucht
+001|detectInstall|File://C:\kernel.etl2
+CMM|File:// benutzt den DateiExistiert-operator
+CMM|Reg:// detektiert unter Win auf Exitenz von Regwert
+001|description|Die minimal nötigen Tools und Komponenten fürs System
+CMM|#basedir# ersetzt Variable durch Pfad dieser datei (ermöglict jar und
+CMM|setup voneinander zu trennen)
+001|packfile|#basedir#\pack001.izsetup
+CMM|msg und exec-lines werden vom PackManager ignoriert und sind für unattendeds nötig
+CMM|dabei werden alle packages nacheinander installiert und ausgeführt
+001|msg|Installiere BasePackage
+001|exec|java -jar izsetup.jar -file pack001.izsetup --silent
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+002|pack|Addons| 
+002|detectInstall|File://%userprofile%\appdata\programname\datei1.dat|
+002|description|Addons und sosntiges was nicht zwingend notwendig ist|
+002|packfile|#basedir#\addons.izsetup| 
+002|req|001|nummer des benötigten packs//kann weitere erfordernwenn
+002|msg|Installiere Addons| 
+002|exec|java -jar izsetup.jar -file addons.izsetup --silent| 
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+003|cond:1|IsWin7| 
+003|pack|Fehlendes Zeugs von XP| 
+003|detectInstall|File://C:\ornder2\datei2.bin
+003|description|Sach das bei XP defult war aber dort fehlt|
+003|packfile|#basedir#\xprecover.izsetup| 
+003|req|001| 
+003|msg|installiere fehlendes nach das bei XP dabei war
+003|exec|java -jar izsetup.jar -file xprevocer.izsetup --silent| 
+003|endcond:1| |
+004|pack|games| 
+004|waitDisk|#basedir#\games.izsetup| 
+004|detectInstall|File://C:\Program Files\ImgBurn\ImgBurn.exexexe
+004|Description|Die Games die nicht fehlen dürfen
+004|packfile|#basedir#\games.izsetup
+004|req|001| 
+004|msg|installiere games| 
+004|exec|java -jar izsetup.jar -file games.izsetup --silent| 
+005|pack|game-Tools| 
+005|waitDisk|#basedir#\gamestls.izsetup| 
+005|detectInstall|File://C:\ornder3\datei3b.bin| 
+005|Description|Tools für die games aus dem Package| 
+005|packfile|#basedir#\gamestls.izsetup
+005|req|004|dependencys gehen über mehrere packs ->auch 001 notwendig 
+005|msg|installiere games-tools| 
+005|exec|java -jar izsetup.jar -file gamestls.izsetup --silent| 
+999|pack|NoExec| dieses Pack ist nur als Wrapper fr die Basta-Messge gedacht und wird nicht ausgeführt
+999|req|000|da 000 kein pack kann dieses nicht ausgewählt werden
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 26 - 26
IZSetup/src/de/nplusc/izc/InstallPak/template.izsetup → IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/src/de/nplusc/izc/InstallPak/template.izsetup

@@ -1,27 +1,27 @@
-000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
-000|type|script|dient nur zur unterscheidung von packagefiles
-000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
-000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
-001|group|Group1|Gruppenname für GUI
-001|cond:1|IsWin8|Geht bis zum nächsten Exec,COnds können aufeinanderfolgen
-001|cond:2|Is64Bit|^
-001|msg|Wird übersprungen|gehört zum darauffolgenden Exec mit gleicher ID
-001|exec| | 
-001|elsecond:2| | 
-001|msg|Installiere was 32-bit spezifisches| 
-001|exec|ping localhost| 
-001|endcond:2| | 
-001|endcond:1| | 
-001|msg|Installing XXX| 
-001|exec|ping localhost| 
-002|rgrp|Runtimes|Beispiel fpr RequireExec-Gruppe
-002|msg|Führe XXX aus| 
-002|requireExec|ping localhost|RequireExec kann nicht ausgewählt werden da immer notwendig. Kann Durch COnds beeinflusst werden
-003|grp|nichtWin8|Testgruppe#3
-003|cond:1|IsWin8| 
-003|elsecond:1| | 
-003|msg|Nur für win7| 
-003|msg|ping localhost| 
-003|endcond:1| | 
-999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Gruppenname für GUI
+001|cond:1|IsWin8|Geht bis zum nächsten Exec,COnds können aufeinanderfolgen
+001|cond:2|Is64Bit|^
+001|msg|Wird übersprungen|gehört zum darauffolgenden Exec mit gleicher ID
+001|exec| | 
+001|elsecond:2| | 
+001|msg|Installiere was 32-bit spezifisches| 
+001|exec|ping localhost| 
+001|endcond:2| | 
+001|endcond:1| | 
+001|msg|Installing XXX| 
+001|exec|ping localhost| 
+002|rgrp|Runtimes|Beispiel fpr RequireExec-Gruppe
+002|msg|Führe XXX aus| 
+002|requireExec|ping localhost|RequireExec kann nicht ausgewählt werden da immer notwendig. Kann Durch COnds beeinflusst werden
+003|grp|nichtWin8|Testgruppe#3
+003|cond:1|IsWin8| 
+003|elsecond:1| | 
+003|msg|Nur für win7| 
+003|msg|ping localhost| 
+003|endcond:1| | 
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
 999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 15 - 0
IZSetup/distPackagerBase/64b/sourcesOfProgram/IZSetup/xprecover.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Proggys+0x01
+001|msg|Proggy1_1|  
+001|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|ProggysProggys+0x02
+002|msg|Proggy2_1| 
+002|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|ProggysProggys+0x03
+003|msg|Proggy3_1| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 10 - 0
IZSetup/distPackagerBase/bundledata/bundle.izmeta

@@ -0,0 +1,10 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izbundle
+meta:isZipped: 'true'
+meta:needsElevation: 'true'
+comment:meta:isZipped: |-
+meta:packFormat: 'yaml'
+bundlename: iZsetup-Engine
+packagedata: default.iZpackage
+description: iZsetup-Runtime
+extractSize: '4000000'

+ 16 - 0
IZSetup/distPackagerBase/bundledata/core.iZsetup

@@ -0,0 +1,16 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- SetupEngine
+SetupEngine:
+  Exec1:
+  - Installation des Core-packages
+  - copyfile
+  - "#basedir#\\iZsetup_inst.jar" 
+  - "%appdata%\\iZsetup\\iZsetup_inst.jar"
+  Exec2:
+  - Installation des Core-packages
+  - program
+  - javaw
+  - -jar
+  - "%appdata%\\iZsetup\\iZsetup_inst.jar"

+ 26 - 0
IZSetup/distPackagerBase/bundledata/default.izpackage

@@ -0,0 +1,26 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izpackage
+packagebases:
+- Engine
+- FileExtensions
+- Samples
+Engine:
+  Name: iZsetup Runtime
+  script: '#basedir#\core.iZsetup'
+  detectInstall: File://%appdata%\iZsetup\IZSetup.jar
+  desc: InstallationsTool für die iZsetup-pakete
+  defaultEnabled: 'true'
+FileExtensions:
+  Name: Dateizuordnungen
+  dependsOn: Engine
+  script: '#basedir#\extensionPackage\extensions.izsetup'
+  detectInstall: REG://HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\
+  desc: Sorgt dafür dass iZsetup-files via doppelklick geladen werden können
+  defaultEnabled: 'true'
+Samples:
+  Name: Beispieldateien
+  dependsOn: Engine
+  script: '#basedir#\demo.iZsetup'
+  detectInstall: File://%userprofile%\documents\iZsetup-samples
+  desc: Für Entwickler
+  defaultEnabled: 'false'

+ 16 - 0
IZSetup/distPackagerBase/bundledata/demo.iZsetup

@@ -0,0 +1,16 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- SetupSamples
+SetupSamples:
+  Exec1:
+  - Installation der Samples
+  - copyfiles
+  - "#basedir#\\demopaq.jar" 
+  - "%userprofile%\\documents\\iZsetup-samples\\demopaq.jar"
+  Exec2:
+  - Installation der Samples
+  - program
+  - javaw
+  - -jar
+  - "%userprofile%\\documents\\iZsetup-samples\\demopaq.jar"

+ 13 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/editallviaNPP.reg

@@ -0,0 +1,13 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit\command]
+@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit\command]
+@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""

+ 36 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/extensions.izsetup

@@ -0,0 +1,36 @@
+000|izsetup|3.0.0|: valides YAML und trotzdem kompatibel
+comment:type: izsetup
+Segments:
+- CoreExts
+- NppReg
+NppReg:
+  Condition:
+  - PathExists:C:\Program Files\Notepad++
+  ifnode:
+  - NppRegImpl
+NppRegImpl:
+  Exec1:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\editallviaNPP.reg"
+CoreExts:
+  Exec1:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izbundle.reg"
+  Exec2:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izpackage.reg"
+  Exec3:
+  - Runtime1
+  - program
+  - reg
+  - import
+  - "#basedir#\\extensionPackage\\izsetup.reg"

BIN
IZSetup/distPackagerBase/bundledata/extensionPackage/fext_refresh.exe


+ 26 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/izbundle.reg

@@ -0,0 +1,26 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.izbundle]
+@="izsetup.izbundle"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage]
+@="iZsetup Packfile"
+"EditFlags"=dword:00000000
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\DefaultIcon]
+@="%appdata%\\izsetup\\izbundle.ico,0"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izbundle\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,62,00,75,00,6e,00,64,00,6c,00,65,00,20,00,22,00,25,00,31,00,\
+  22,00,00,00
+

+ 53 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/izinstall.queue

@@ -0,0 +1,53 @@
+000|izsetup|1.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|rgrp|Runtimes| 
+001|cond:1|IsWin8|Geht bis zum nächsten Exec,COnds können aufeinanderfolgen
+001|msg|kein DOtNetFxnötig (win8)| 
+001|exec| | 
+001|elsecond:1| | 
+001|msg|Installiere DotNetFx//windoof sollte sowas als update schieben...
+001|exec|dotnetfx45_full_x86_x64.exe /passive /norestart| 
+001|endcond:1| | 
+001|msg|Installiere VCRedist package//schiebt das gfällighst als update raus....| 
+001|exec|vcredist_x86.exe /passive /norestart| 
+002|rgrp|reghax| 
+002|cond:1|isWin8|
+002|msg|isntalliere reghäxe
+002|exec|reg import kls.reg|reghack für Anmeldung win8
+002|endcond:1| | 
+003|grp|Firefox| 
+003|msg|Installiere Mozarella Firefox| 
+003|exec|ff.exe -ms| 
+003|msg|Installiere Adobäh Fläsh| 
+003|exec|flashplayerinstaller.exe -install -au 0| 
+004|grp|Adobe Reader| 
+004|msg|bügele gerade Adobäh reader druff| 
+004|exec|AdbeRdr11000_de_DE.exe /sPB /msi /norestart ALLUSERS=1 EULA_ACCEPT=YES| 
+005|grp|Archivierungsprogramme| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|7z920.exe /S| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|wrar420d.exe /S| 
+005|msg|Installiere WInRarsch und 7zipper //gezippt wird aber richtig....| 
+005|exec|finish.exe| 
+006|grp|VLC+Addons| 
+006|msg|Installiere VLCer //@M$ Leckt mich am Arsch mit dem MEdiacenter-Scheisssssssss| 
+006|exec|vlc-2.0.0-win32.exe /S| 
+006|msg|Installiere Xvid //(damit dass ihr 20 € fürs DVD glozzen verlangt)| 
+006|exec|xvid.exe --mode unattended --decode_divx DIVX --decode_3ivx 3IVX --decode_other MPEG4| 
+007|grp|IrfanView| 
+007|msg|bügle irfanview drauf //(windoof kannseinen Murks sostwohin stopfen......)| 
+007|exec|ivs.exe /silent /desktop=0 /thumbs=0 /group=1 /allusers=0 /assoc=1| 
+007|msg|bügle irfanview drauf //(windoof kannseinen Murks sostwohin stopfen......)| 
+007|exec|ivps.exe /silent| 
+008|grp|imgburn| 
+008|msg|imgburn wird isntalliert//gebruzzelt wird nicht mit windoof-toolz|
+008|exec|imgburn.exe /S| 
+009|grp|Posteriza| 
+009|msg|grad wurde posteriza draufgebügelt......| 
+009|exec|posteriza.exe|sfx-hax
+010|msg|installiere ccleaner //und jetzt noch den datenmüll killen| 
+010|exec|ccsetup325.exe /S| 
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 25 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/izpackage.reg

@@ -0,0 +1,25 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\.izpackage]
+@="izsetup.izpackage"
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage]
+@="iZsetup Packfile"
+"EditFlags"=dword:00000000
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\DefaultIcon]
+@="%appdata%\\izsetup\\izpackage.ico,0"
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell\open]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izpackage\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,66,00,69,00,6c,00,65,00,20,00,22,00,25,00,31,00,22,00,20,00,\
+  2d,00,2d,00,70,00,61,00,63,00,6b,00,00,00

+ 24 - 0
IZSetup/distPackagerBase/bundledata/extensionPackage/izsetup.reg

@@ -0,0 +1,24 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\.izsetup]
+@="izsetup.izsetup"
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup]
+@="iZsetup Scriptfile"
+"EditFlags"=dword:00000000
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\DefaultIcon]
+@="%appdata%\\izsetup\\izsetup.ico,0"
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell\open]
+@=""
+
+[HKEY_CLASSES_ROOT\izsetup.izsetup\shell\open\command]
+@=hex(2):6a,00,61,00,76,00,61,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,\
+  25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,69,00,7a,00,73,\
+  00,65,00,74,00,75,00,70,00,5c,00,69,00,7a,00,73,00,65,00,74,00,75,00,70,00,\
+  4c,00,61,00,75,00,6e,00,63,00,68,00,65,00,72,00,2e,00,6a,00,61,00,72,00,22,\
+  00,20,00,2d,00,66,00,69,00,6c,00,65,00,20,00,22,00,25,00,31,00,22,00,00,00

BIN
IZSetup/distPackagerBase/bundledata/extensionPackage/tempo.reg


+ 15 - 0
IZSetup/distPackagerBase/demopackage/addons.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Addons+0x01
+001|msg|Addon1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Addons+0x02
+002|msg|Addon2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Addons+0x03
+003|msg|Addon3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 10 - 0
IZSetup/distPackagerBase/demopackage/bundle.izmeta

@@ -0,0 +1,10 @@
+000|izsetup|1.0.0| 
+000|type|bundle|nur für uer (der kommentar)
+001|meta:isZipped|false|
+CMM|meta:isZipped: bei false sind die dateien als normale dateien neben dieser bundle gelagert -> kein entzippern
+CMM|in tempdir nötig. Muss bei multidisk-bundles deaktiviert sein. bei diskbundles wird Deaktivierung empfohlen
+CMM|da es die Festplatte nicht so vollstopft
+001|bundlename|Testbundle
+001|packagedata|default.izpackage|muss im basedir des Bundles liegen(!!!!!!!!!!!!!!!!!!!!!!!!!!)
+001|Description|Test für bundleGui
+001|extractSize|10000|Angabe in Bytes. wird von GUI konvertiert.

BIN
IZSetup/distPackagerBase/demopackage/default.izbundle


+ 64 - 0
IZSetup/distPackagerBase/demopackage/default.izpackage

@@ -0,0 +1,64 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+000|type|packages|dient nur zur unterscheidung von packagefiles
+000|||packagefiles unterstützen Conds genauso
+000|flag|multidisk|dieses Flag aktivirt den Multidisk-Modus
+CMM|Inline-COmment-funktion
+CMM|Multidisk-Modus=Dateien werden nicht auf Temp kopiert und bei nem WaitDisk
+CMM|kommt ne Aufforderung die nächste Disk einzulegen
+CMM|der dateiname danach sagt auf welche datei geschaut wird
+001|pack|BaseSystem|Name de Packages das in der Anicht auftaucht
+001|detectInstall|File://C:\kernel.etl2
+CMM|File:// benutzt den DateiExistiert-operator
+CMM|Reg:// detektiert unter Win auf Exitenz von Regwert
+001|description|Die minimal nötigen Tools und Komponenten fürs System
+CMM|#basedir# ersetzt Variable durch Pfad dieser datei (ermöglict jar und
+CMM|setup voneinander zu trennen)
+001|packfile|#basedir#\pack001.izsetup
+CMM|msg und exec-lines werden vom PackManager ignoriert und sind für unattendeds nötig
+CMM|dabei werden alle packages nacheinander installiert und ausgeführt
+001|msg|Installiere BasePackage
+001|exec|java -jar izsetup.jar -file pack001.izsetup --silent
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+002|pack|Addons| 
+002|detectInstall|File://%userprofile%\appdata\programname\datei1.dat|
+002|description|Addons und sosntiges was nicht zwingend notwendig ist|
+002|packfile|#basedir#\addons.izsetup| 
+002|req|001|nummer des benötigten packs//kann weitere erfordernwenn
+002|msg|Installiere Addons| 
+002|exec|java -jar izsetup.jar -file addons.izsetup --silent| 
+CMM|########################################### 
+CMM|###########################################
+CMM|###########################################
+003|cond:1|IsWin7| 
+003|pack|Fehlendes Zeugs von XP| 
+003|detectInstall|File://C:\ornder2\datei2.bin
+003|description|Sach das bei XP defult war aber dort fehlt|
+003|packfile|#basedir#\xprecover.izsetup| 
+003|req|001| 
+003|msg|installiere fehlendes nach das bei XP dabei war
+003|exec|java -jar izsetup.jar -file xprevocer.izsetup --silent| 
+003|endcond:1| |
+004|pack|games| 
+004|waitDisk|#basedir#\games.izsetup| 
+004|detectInstall|File://C:\Program Files\ImgBurn\ImgBurn.exexexe
+004|Description|Die Games die nicht fehlen dürfen
+004|packfile|#basedir#\games.izsetup
+004|req|001| 
+004|msg|installiere games| 
+004|exec|java -jar izsetup.jar -file games.izsetup --silent| 
+005|pack|game-Tools| 
+005|waitDisk|#basedir#\gamestls.izsetup| 
+005|detectInstall|File://C:\ornder3\datei3b.bin| 
+005|Description|Tools für die games aus dem Package| 
+005|packfile|#basedir#\gamestls.izsetup
+005|req|004|dependencys gehen über mehrere packs ->auch 001 notwendig 
+005|msg|installiere games-tools| 
+005|exec|java -jar izsetup.jar -file gamestls.izsetup --silent| 
+999|pack|NoExec| dieses Pack ist nur als Wrapper fr die Basta-Messge gedacht und wird nicht ausgeführt
+999|req|000|da 000 kein pack kann dieses nicht ausgewählt werden
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/demopackage/games.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Games+0x01
+001|msg|Games1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_2| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_3| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|Games1_4| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|Games+0x02
+002|msg|Games2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_2| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_3| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|Games2_4| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Games+0x03
+003|msg|Games3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_2| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_3| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|Games3_4| 
+003|exec|ping localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 33 - 0
IZSetup/distPackagerBase/demopackage/gamestls.izsetup

@@ -0,0 +1,33 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|GameTools+0x01
+001|msg|GameTool1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_2| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_3| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+001|msg|GameTool1_4| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|GameTools+0x02
+002|msg|GameTool2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_2| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_3| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|msg|GameTool2_4| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|GameTools+0x03
+003|msg|GameTool3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_2| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_3| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|msg|GameTool3_4| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 15 - 0
IZSetup/distPackagerBase/demopackage/pack001.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Basetools+0x01
+001|msg|Tool1_1| 
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl). smikolin trennt  argumente; dank an java7u17
+002|group|Group1|Basetools+0x02
+002|msg|Tool2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|Basetools+0x03
+003|msg|Tool3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec||der installer beendet sich nicht bei wait am schluss

+ 15 - 0
IZSetup/distPackagerBase/demopackage/xprecover.izsetup

@@ -0,0 +1,15 @@
+000|izsetup|2.0.0|Version (4 spalte=Kommentar)(posiNbr|type|Value|comment);Leere Felder brauchen ein LEerzeichen!
+000|type|script|dient nur zur unterscheidung von packagefiles
+000|||Dieser Bereich ist der Header (groupid 000 word vom Preprocessor immer verworfen und kann für Vermerke genutzt werden
+000|||Msg muss vorm exec stehen da sonst falsch gelinkt wird
+001|group|Group1|Proggys+0x01
+001|msg|Proggy1_1|  
+001|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+002|group|Group1|ProggysProggys+0x02
+002|msg|Proggy2_1| 
+002|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+003|group|Group1|ProggysProggys+0x03
+003|msg|Proggy3_1| 
+003|exec|ping;localhost|gibt neverzögerung ohnewas am system zu ädndern (Dummy-befehl)
+999|msg|Basta|namenlose gruppen werden automatsch ausgeführt
+999|exec|wait|der installer beendet sich nicht bei wait am schluss

+ 4 - 0
IZSetup/distPackagerBase/demosfxcomm.txt

@@ -0,0 +1,4 @@
+;Der folgende Kommentar enthält SFX-Skriptbefehle
+
+Path=%userprofile%/documents/iZsetup-samples
+Silent=1

+ 5 - 0
IZSetup/distPackagerBase/distsfxcomm.txt

@@ -0,0 +1,5 @@
+;Der folgende Kommentar enthält SFX-Skriptbefehle
+
+Setup=bootstrap.bat
+TempMode
+Silent=1

+ 13 - 0
IZSetup/distPackagerBase/editallviaNPP.txt

@@ -0,0 +1,13 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izpackage\shell\edit\command]
+@="\"C:\Program Files\Notepad++\notepad++.exe\" \"%1\""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\open]
+@=""
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\izsetup.izsetup\shell\edit\command]
+@="\"C:\Program Files\Notepad++\notepad++.exe\" \"%1\""

BIN
IZSetup/distPackagerBase/engine.exex


BIN
IZSetup/distPackagerBase/engine/ICE_JNIRegistry.dll


+ 32 - 0
IZSetup/distPackagerBase/engine/README.TXT

@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "IZSetup.jar" 
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác