# JT2GO Installer

Automated installer for Siemens JT2Go 2512 with prerequisite checking and silent installation support.

## Overview

JT2Go is a free 3D CAD viewer for viewing JT, PDF, and other CAD formats. This installer automates the installation process by:

1. Checking for required prerequisites
2. Installing missing components automatically
3. Running the main JT2Go installer

## Prerequisites Checked

| Component | Detection Method | Installer |
|-----------|------------------|-----------|
| Visual C++ 2015-2022 x86 | Registry check | `VC_redist.x86.exe` |
| Visual C++ 2015-2022 x64 | Registry check | `VC_redist.x64.exe` |
| .NET Framework 4.8 | Registry (Release >= 528040) | `NDP48-x86-x64-AllOS-ENU.exe` |

## Files Required

```
JT2GO/
├── JT2GO.iss              # Inno Setup script
├── JT2GoSetup.exe         # Main JT2Go installer (not in git)
├── VC_redist.x86.exe      # Visual C++ x86 (not in git)
├── VC_redist.x64.exe      # Visual C++ x64 (not in git)
├── NDP48-x86-x64-AllOS-ENU.exe  # .NET 4.8 (not in git)
├── CustomInstall.bat      # Helper batch file
├── gea-logo.ico           # Setup icon
├── patrick.bmp            # Wizard banner (164x314)
└── patrick-sm.bmp         # Wizard small image (55x58)
```

## Usage

### Interactive Installation

1. Compile `JT2GO.iss` with Inno Setup Compiler
2. Run the generated `JT2GOSetup.exe`
3. The installer will:
   - Display detected/missing prerequisites
   - Ask for confirmation to install missing components
   - Install prerequisites silently
   - Launch JT2Go installer

### Silent Installation

```batch
JT2GOSetup.exe /VERYSILENT /SUPPRESSMSGBOXES
```

With logging:
```batch
JT2GOSetup.exe /VERYSILENT /SUPPRESSMSGBOXES /LOG="C:\install.log"
```

## How It Works

### Prerequisite Detection

**Visual C++ Redistributables:**
```
HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64
HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86
```

**.NET Framework 4.8:**
```
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Release value >= 528040
```

### Installation Flow

1. **InitializeSetup** - Verify admin privileges
2. **Prerequisite Check** - Scan registry for installed components
3. **Display Summary** - Show what will be installed
4. **Install Prerequisites** - Run installers silently (`/quiet /norestart`)
5. **Handle Reboot** - If .NET requires reboot, notify user
6. **Install JT2Go** - Run main installer (`/L1033 /S /v"/qn /norestart"`)

## Customization

### Adding More Prerequisites

Edit the `[Code]` section in `JT2GO.iss`:

```pascal
function IsMyComponentInstalled: Boolean;
begin
  // Add your registry check here
  Result := RegKeyExists(HKLM, 'SOFTWARE\YourComponent');
end;
```

### Changing JT2Go Version

Update the installer filename and parameters in the script:
```pascal
JT2GoInstaller := ExpandConstant('{src}\JT2GoSetup.exe');
JT2GoParams := '/L1033 /S /v"/qn /norestart"';
```

## Troubleshooting

### "Requires administrator privileges"
Right-click the installer and select "Run as administrator"

### Prerequisites install but JT2Go fails
Check if JT2Go requires additional components not covered by this installer

### Silent install shows dialogs
The `/qn` flag ensures fully silent MSI installation. If dialogs appear, the MSI parameters may need adjustment.

## Building

1. Install [Inno Setup 6.x](https://jrsoftware.org/isdl.php)
2. Download required installers to the JT2GO folder
3. Open `JT2GO.iss` in Inno Setup Compiler
4. Click Build > Compile (or press F9)
5. Output: `Output/JT2GOSetup.exe`

## Author

WJDT / GE Aerospace
