Initial commit: Inno Setup installer packages
Installer packages for GE manufacturing tools: - BlueSSOFix: Blue SSO authentication fix - HIDCardPrinter: HID card printer setup - HPOfflineInstaller: HP printer offline installer - MappedDrive: Network drive mapping - PrinterInstaller: General printer installer - ShopfloorConnect: Shopfloor connectivity tool - XeroxOfflineInstaller: Xerox printer offline installer 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
*.exe
|
||||||
|
Output/
|
||||||
|
.claude/
|
||||||
1
BlueSSOFix/BLUESSO Add Temp.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
netsh wlan add profile filename="%TEMP%\BLUESSO.xml"
|
||||||
1
BlueSSOFix/BLUESSO Add.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
netsh wlan add profile filename="S:\DT\PBR\wireless\BLUESSO.xml"
|
||||||
1
BlueSSOFix/BLUESSO Remove.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
netsh wlan delete profile name="BLUESSO"
|
||||||
63
BlueSSOFix/BLUESSO.xml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
|
||||||
|
<name>BLUESSO</name>
|
||||||
|
<SSIDConfig>
|
||||||
|
<SSID>
|
||||||
|
<hex>424C554553534F</hex>
|
||||||
|
<name>BLUESSO</name>
|
||||||
|
</SSID>
|
||||||
|
<nonBroadcast>true</nonBroadcast>
|
||||||
|
</SSIDConfig>
|
||||||
|
<connectionType>ESS</connectionType>
|
||||||
|
<connectionMode>manual</connectionMode>
|
||||||
|
<autoSwitch>false</autoSwitch>
|
||||||
|
<MSM>
|
||||||
|
<security>
|
||||||
|
<authEncryption>
|
||||||
|
<authentication>WPA2</authentication>
|
||||||
|
<encryption>AES</encryption>
|
||||||
|
<useOneX>true</useOneX>
|
||||||
|
</authEncryption>
|
||||||
|
<OneX xmlns="http://www.microsoft.com/networking/OneX/v1">
|
||||||
|
<cacheUserData>true</cacheUserData>
|
||||||
|
<authMode>machineOrUser</authMode>
|
||||||
|
<EAPConfig>
|
||||||
|
<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
|
||||||
|
<EapMethod>
|
||||||
|
<Type xmlns="http://www.microsoft.com/provisioning/EapCommon">25</Type>
|
||||||
|
<VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
|
||||||
|
<VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
|
||||||
|
<AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
|
||||||
|
</EapMethod>
|
||||||
|
<Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
|
||||||
|
<Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
|
||||||
|
<Type>25</Type>
|
||||||
|
<EapType xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1">
|
||||||
|
<ServerValidation>
|
||||||
|
<DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation>
|
||||||
|
<ServerNames></ServerNames>
|
||||||
|
<TrustedRootCA></TrustedRootCA>
|
||||||
|
</ServerValidation>
|
||||||
|
<FastReconnect>true</FastReconnect>
|
||||||
|
<InnerEapOptional>false</InnerEapOptional>
|
||||||
|
<Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
|
||||||
|
<Type>6</Type>
|
||||||
|
<EapType xmlns="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1">
|
||||||
|
<UseWinLogonCredentials>false</UseWinLogonCredentials>
|
||||||
|
</EapType>
|
||||||
|
</Eap>
|
||||||
|
<EnableQuarantineChecks>false</EnableQuarantineChecks>
|
||||||
|
<RequireCryptoBinding>false</RequireCryptoBinding>
|
||||||
|
<PeapExtensions>
|
||||||
|
<PerformServerValidation xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">true</PerformServerValidation>
|
||||||
|
<AcceptServerName xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName>
|
||||||
|
</PeapExtensions>
|
||||||
|
</EapType>
|
||||||
|
</Eap>
|
||||||
|
</Config>
|
||||||
|
</EapHostConfig>
|
||||||
|
</EAPConfig>
|
||||||
|
</OneX>
|
||||||
|
</security>
|
||||||
|
</MSM>
|
||||||
|
</WLANProfile>
|
||||||
190
BlueSSOFix/BlueSSOFix.iss
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
; BlueSSOFix - GE Aerospace Blue SSO Certificate Fix Utility
|
||||||
|
; Automates certificate management and WiFi profile configuration for Blue SSO authentication
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppId={{9A8B7C6D-5E4F-3A2B-1C0D-9E8F7A6B5C4D}}
|
||||||
|
AppName=WJDT BlueSSOFix
|
||||||
|
AppVersion=1.0
|
||||||
|
AppPublisher=WJDT
|
||||||
|
AppPublisherURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
AppSupportURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
AppUpdatesURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
CreateAppDir=no
|
||||||
|
ChangesAssociations=no
|
||||||
|
PrivilegesRequired=admin
|
||||||
|
OutputDir=.\Output
|
||||||
|
OutputBaseFilename=BlueSSOFix
|
||||||
|
SolidCompression=yes
|
||||||
|
WizardStyle=modern
|
||||||
|
SetupIconFile=gea-logo.ico
|
||||||
|
WizardImageFile=patrick.bmp
|
||||||
|
WizardSmallImageFile=patrick-sm.bmp
|
||||||
|
CreateUninstallRegKey=no
|
||||||
|
DisableWelcomePage=no
|
||||||
|
|
||||||
|
[Languages]
|
||||||
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
|
|
||||||
|
[Messages]
|
||||||
|
WelcomeLabel2=This utility will fix Blue SSO wireless authentication issues.%n%nThe installer will:%n- Uninstall and reinstall EAP-PEAP%n- Remove old BLUESSO WiFi profile%n- Install fresh BLUESSO WiFi profile%n- Clean expired certificates%n%nThis is useful when:%n- Blue SSO authentication fails%n- WiFi profile is corrupted%n- Certificate errors appear
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
; Embed the EAP-PEAP installer
|
||||||
|
Source: "EAP-PEAP.msi"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
; Embed the working BLUESSO.xml
|
||||||
|
Source: "BLUESSO.xml"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
; Embed the bat files
|
||||||
|
Source: "BLUESSO Remove.bat"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
Source: "BLUESSO Add Temp.bat"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||||
|
|
||||||
|
[Code]
|
||||||
|
var
|
||||||
|
CurrentUsername: String;
|
||||||
|
|
||||||
|
procedure InitializeWizard();
|
||||||
|
begin
|
||||||
|
CurrentUsername := GetUserNameString;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CurStepChanged(CurStep: TSetupStep);
|
||||||
|
var
|
||||||
|
ResultCode: Integer;
|
||||||
|
ScriptPath: String;
|
||||||
|
PowerShellScript: String;
|
||||||
|
MsiPath: String;
|
||||||
|
XmlPath: String;
|
||||||
|
begin
|
||||||
|
if CurStep = ssInstall then
|
||||||
|
begin
|
||||||
|
MsiPath := ExpandConstant('{tmp}\EAP-PEAP.msi');
|
||||||
|
|
||||||
|
// Build PowerShell script with nice output
|
||||||
|
PowerShellScript :=
|
||||||
|
'$ErrorActionPreference = "Continue"' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " BlueSSOFix - Blue SSO Repair Tool" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Current User: ' + CurrentUsername + '" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'Write-Host "Step 1: Checking EAP-PEAP installation..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
'$peapInstalled = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ED5776D5-59B4-46B7-AF81-5F2D94D7C640}"' + #13#10 +
|
||||||
|
'if ($peapInstalled) {' + #13#10 +
|
||||||
|
' Write-Host " EAP-PEAP already installed" -ForegroundColor Green' + #13#10 +
|
||||||
|
'} else {' + #13#10 +
|
||||||
|
' Write-Host " Installing EAP-PEAP..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
' $msiPath = "' + MsiPath + '"' + #13#10 +
|
||||||
|
' $process = Start-Process -FilePath "msiexec.exe" -ArgumentList @("/i", "`"$msiPath`"", "/qn", "/norestart") -Wait -PassThru' + #13#10 +
|
||||||
|
' if ($process.ExitCode -eq 0) {' + #13#10 +
|
||||||
|
' Write-Host " EAP-PEAP installed successfully" -ForegroundColor Green' + #13#10 +
|
||||||
|
' Start-Sleep -Seconds 3' + #13#10 +
|
||||||
|
' } else {' + #13#10 +
|
||||||
|
' Write-Host " Installation failed with exit code: $($process.ExitCode)" -ForegroundColor Red' + #13#10 +
|
||||||
|
' exit $process.ExitCode' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'}' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'Write-Host "Step 2: Cleaning expired certificates..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
'try {' + #13#10 +
|
||||||
|
' $expiredCerts = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.NotAfter -lt (Get-Date) }' + #13#10 +
|
||||||
|
' if ($expiredCerts) {' + #13#10 +
|
||||||
|
' $removedCount = 0' + #13#10 +
|
||||||
|
' foreach ($cert in $expiredCerts) {' + #13#10 +
|
||||||
|
' try {' + #13#10 +
|
||||||
|
' Remove-Item -Path "Cert:\CurrentUser\My\$($cert.Thumbprint)" -Force -ErrorAction Stop' + #13#10 +
|
||||||
|
' $removedCount++' + #13#10 +
|
||||||
|
' } catch { }' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
' Write-Host " Removed $removedCount expired certificates" -ForegroundColor Green' + #13#10 +
|
||||||
|
' } else {' + #13#10 +
|
||||||
|
' Write-Host " No expired certificates found" -ForegroundColor Green' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'} catch {' + #13#10 +
|
||||||
|
' Write-Host " Error: $_" -ForegroundColor Red' + #13#10 +
|
||||||
|
'}' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " Phase 1 Complete" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "WiFi profile will be configured next..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
'Write-Host ""';
|
||||||
|
|
||||||
|
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix.ps1');
|
||||||
|
SaveStringToFile(ScriptPath, PowerShellScript, False);
|
||||||
|
|
||||||
|
Exec('powershell.exe',
|
||||||
|
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
|
||||||
|
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
DeleteFile(ScriptPath);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if CurStep = ssPostInstall then
|
||||||
|
begin
|
||||||
|
// Build nice PowerShell script for WiFi configuration
|
||||||
|
XmlPath := ExpandConstant('{commonappdata}\BLUESSO.xml');
|
||||||
|
CopyFile(ExpandConstant('{tmp}\BLUESSO.xml'), XmlPath, False);
|
||||||
|
|
||||||
|
PowerShellScript :=
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Step 3: Configuring WiFi profile..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
'Write-Host " Removing old BLUESSO profile..." -ForegroundColor Gray' + #13#10 +
|
||||||
|
'Write-Host ""';
|
||||||
|
|
||||||
|
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix_WiFi.ps1');
|
||||||
|
SaveStringToFile(ScriptPath, PowerShellScript, False);
|
||||||
|
|
||||||
|
Exec('powershell.exe',
|
||||||
|
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
|
||||||
|
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
DeleteFile(ScriptPath);
|
||||||
|
|
||||||
|
// Create scheduled task to run as current user (non-elevated)
|
||||||
|
Exec('cmd.exe',
|
||||||
|
'/c schtasks /create /tn "BlueSSOFix_WiFi" /tr "cmd.exe /c netsh wlan delete profile name=BLUESSO & netsh wlan add profile filename=' + XmlPath + '" /sc once /st 00:00 /ru "' + CurrentUsername + '" /f',
|
||||||
|
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
// Run the scheduled task immediately
|
||||||
|
Exec('cmd.exe',
|
||||||
|
'/c schtasks /run /tn "BlueSSOFix_WiFi"',
|
||||||
|
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
Sleep(2000);
|
||||||
|
|
||||||
|
// Delete the scheduled task
|
||||||
|
Exec('cmd.exe',
|
||||||
|
'/c schtasks /delete /tn "BlueSSOFix_WiFi" /f',
|
||||||
|
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
// Final success message
|
||||||
|
PowerShellScript :=
|
||||||
|
'Write-Host " WiFi profile configured successfully" -ForegroundColor Green' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " BlueSSOFix Complete!" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Summary:" -ForegroundColor White' + #13#10 +
|
||||||
|
'Write-Host " [OK] EAP-PEAP installed" -ForegroundColor Green' + #13#10 +
|
||||||
|
'Write-Host " [OK] BLUESSO WiFi profile configured" -ForegroundColor Green' + #13#10 +
|
||||||
|
'Write-Host " [OK] Expired certificates cleaned" -ForegroundColor Green' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Press any key to continue..." -ForegroundColor Gray' + #13#10 +
|
||||||
|
'$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")';
|
||||||
|
|
||||||
|
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix_Complete.ps1');
|
||||||
|
SaveStringToFile(ScriptPath, PowerShellScript, False);
|
||||||
|
|
||||||
|
Exec('powershell.exe',
|
||||||
|
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
|
||||||
|
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
DeleteFile(ScriptPath);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
BIN
BlueSSOFix/EAP-PEAP.msi
Normal file
BIN
BlueSSOFix/gea-logo.ico
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
BlueSSOFix/patrick-sm.bmp
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
BlueSSOFix/patrick.bmp
Normal file
|
After Width: | Height: | Size: 151 KiB |
455
BlueSSOFix/printer_installer_map.asp
Normal file
@@ -0,0 +1,455 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<!--#include file="./includes/header.asp"-->
|
||||||
|
<!--#include file="./includes/sql.asp"-->
|
||||||
|
<link rel="stylesheet" href="./leaflet/leaflet.css">
|
||||||
|
<script src="./leaflet/leaflet.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<%
|
||||||
|
theme = Request.Cookies("theme")
|
||||||
|
IF theme = "" THEN
|
||||||
|
theme="bg-theme1"
|
||||||
|
END IF
|
||||||
|
%>
|
||||||
|
<body class="bg-theme <%Response.Write(theme)%>">
|
||||||
|
|
||||||
|
<!-- start loader -->
|
||||||
|
<div id="pageloader-overlay" class="visible incoming"><div class="loader-wrapper-outer"><div class="loader-wrapper-inner" ><div class="loader"></div></div></div></div>
|
||||||
|
<!-- end loader -->
|
||||||
|
<!-- Start wrapper-->
|
||||||
|
<div id="wrapper">
|
||||||
|
<!--#include file="./includes/leftsidebar.asp"-->
|
||||||
|
<!--Start topbar header-->
|
||||||
|
<!--#include file="./includes/topbarheader.asp"-->
|
||||||
|
<!--End topbar header-->
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
<div class="content-wrapper">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8 col-xl-9">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body" style="padding:0;">
|
||||||
|
<div style="padding:15px; border-bottom:1px solid #444;">
|
||||||
|
<h5 class="card-title" style="margin:0;">
|
||||||
|
<i class='zmdi zmdi-map'></i> Printer Installation Map
|
||||||
|
<span style="float:right; font-size:14px; font-weight:normal;">
|
||||||
|
<span id="selectedCount" style="color:#4fc3f7;">0</span> printer(s) selected
|
||||||
|
</span>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div id="map"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4 col-xl-3">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header" style="background: linear-gradient(45deg, #667eea, #764ba2); color: white;">
|
||||||
|
<i class="zmdi zmdi-download"></i> Printer Installer
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<p style="font-size:13px; color:#aaa; margin-bottom:15px;">
|
||||||
|
Click printers on the map to select them. Selected printers will turn green.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="selectedPrinters" style="margin-bottom:20px; max-height:300px; overflow-y:auto;">
|
||||||
|
<div style="color:#888; font-size:12px; text-align:center; padding:20px;">
|
||||||
|
No printers selected yet
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button id="installBtn" class="btn btn-primary btn-block" style="display:none;" onclick="downloadInstaller()">
|
||||||
|
<i class="zmdi zmdi-download"></i> Download Installer
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button class="btn btn-outline-secondary btn-block btn-sm" onclick="clearSelection()">
|
||||||
|
<i class="zmdi zmdi-close"></i> Clear Selection
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div style="margin-top:20px; padding:15px; background:#2a2a2a; border-radius:4px; font-size:12px;">
|
||||||
|
<strong style="color:#4fc3f7;">Legend:</strong>
|
||||||
|
<div style="margin-top:8px;">
|
||||||
|
<span style="display:inline-block; width:10px; height:10px; background:#888; border-radius:50%; margin-right:8px;"></span> Not Selected<br>
|
||||||
|
<span style="display:inline-block; width:10px; height:10px; background:#4caf50; border-radius:50%; margin-right:8px; margin-top:5px;"></span> Selected
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!--End Row-->
|
||||||
|
|
||||||
|
</div><!--End content-wrapper-->
|
||||||
|
<!--Start Back To Top Button-->
|
||||||
|
<a href="javaScript:void();" class="back-to-top"><i class="fa fa-angle-double-up"></i> </a>
|
||||||
|
<!--End Back To Top Button-->
|
||||||
|
|
||||||
|
<!--Start footer-->
|
||||||
|
<footer class="footer">
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!--End footer-->
|
||||||
|
|
||||||
|
</div><!--End wrapper-->
|
||||||
|
|
||||||
|
<!-- Bootstrap core JavaScript-->
|
||||||
|
<script src="assets/js/jquery.min.js"></script>
|
||||||
|
<script src="assets/js/popper.min.js"></script>
|
||||||
|
<script src="assets/js/bootstrap.min.js"></script>
|
||||||
|
<script src="assets/plugins/simplebar/js/simplebar.js"></script>
|
||||||
|
<script src="assets/js/sidebar-menu.js"></script>
|
||||||
|
<script src="assets/js/app-script.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#map {
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100vh - 250px);
|
||||||
|
min-height: 600px;
|
||||||
|
background-color: #1a1a1a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-control-zoom a {
|
||||||
|
background-color: #2a2a2a !important;
|
||||||
|
color: #fff !important;
|
||||||
|
border-color: #444 !important;
|
||||||
|
}
|
||||||
|
.leaflet-control-zoom a:hover {
|
||||||
|
background-color: #3a3a3a !important;
|
||||||
|
}
|
||||||
|
.leaflet-bar {
|
||||||
|
border: 1px solid #444 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-popup-content-wrapper {
|
||||||
|
background: transparent !important;
|
||||||
|
color: #fff !important;
|
||||||
|
box-shadow: 0 3px 14px rgba(0,0,0,0.6) !important;
|
||||||
|
border-radius: 4px !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
.leaflet-popup-content {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
.leaflet-popup-tip-container {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
.leaflet-popup-close-button {
|
||||||
|
color: #fff !important;
|
||||||
|
font-size: 24px !important;
|
||||||
|
padding: 4px 8px 0 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-control-attribution {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected-printer-item {
|
||||||
|
padding: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
background: #2a2a2a;
|
||||||
|
border-left: 3px solid #4caf50;
|
||||||
|
border-radius: 3px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected-printer-item .remove-btn {
|
||||||
|
float: right;
|
||||||
|
color: #f44336;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Get current theme
|
||||||
|
var bodyClass = document.body.className;
|
||||||
|
var themeMatch = bodyClass.match(/bg-theme(\d+)/);
|
||||||
|
var theme = themeMatch ? 'bg-theme' + themeMatch[1] : 'bg-theme1';
|
||||||
|
|
||||||
|
var themeConfig = {
|
||||||
|
'bg-theme1': { bg: '#2a2a2a', filter: 'brightness(0.7) contrast(1.1)', gradient: 'linear-gradient(45deg, #3a3a3a, #4a4a4a)' },
|
||||||
|
'bg-theme7': { bg: '#0c675e', filter: 'brightness(0.8) contrast(1.1) hue-rotate(-10deg)', gradient: 'linear-gradient(45deg, #0c675e, #069e90)' },
|
||||||
|
'bg-theme11': { bg: '#1565C0', filter: 'brightness(0.85) contrast(1.05) hue-rotate(-5deg)', gradient: 'linear-gradient(45deg, #1565C0, #1E88E5)' }
|
||||||
|
};
|
||||||
|
|
||||||
|
var config = themeConfig[theme] || { bg: '#1a1a1a', filter: 'brightness(0.7) contrast(1.1)', gradient: 'linear-gradient(45deg, #667eea, #764ba2)' };
|
||||||
|
|
||||||
|
document.getElementById('map').style.backgroundColor = config.bg;
|
||||||
|
|
||||||
|
var map = L.map('map', {
|
||||||
|
crs: L.CRS.Simple,
|
||||||
|
minZoom: -3
|
||||||
|
});
|
||||||
|
var bounds = [[0,0], [2550,3300]];
|
||||||
|
|
||||||
|
var lightThemes = ['bg-theme11', 'bg-theme13'];
|
||||||
|
var mapImage = lightThemes.includes(theme) ? './images/sitemap2025-light.png' : './images/sitemap2025-dark.png';
|
||||||
|
var image = L.imageOverlay(mapImage, bounds);
|
||||||
|
|
||||||
|
image.on('load', function() {
|
||||||
|
var imgElement = this.getElement();
|
||||||
|
if (imgElement) {
|
||||||
|
imgElement.style.filter = config.filter;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
image.addTo(map);
|
||||||
|
var center = [1275, 1650];
|
||||||
|
map.setView(center, -2.3);
|
||||||
|
|
||||||
|
// Store printer data and markers
|
||||||
|
var printerData = {};
|
||||||
|
var selectedPrinters = {};
|
||||||
|
|
||||||
|
<%
|
||||||
|
strSQL = "SELECT machines.mapleft, machines.maptop, machines.machinenumber, printers.printerid, " &_
|
||||||
|
"printers.printercsfname, printers.printerwindowsname, models.modelnumber, models.image, " &_
|
||||||
|
"printers.ipaddress, printers.fqdn, machines.alias, vendors.vendor " &_
|
||||||
|
"FROM machines, printers, models, vendors WHERE " &_
|
||||||
|
"printers.modelid = models.modelnumberid AND " &_
|
||||||
|
"models.vendorid = vendors.vendorid AND " &_
|
||||||
|
"printers.machineid != 1 AND " &_
|
||||||
|
"printers.machineid = machines.machineid AND " &_
|
||||||
|
"printers.isactive = 1 AND " &_
|
||||||
|
"(vendors.vendor = 'HP' OR vendors.vendor = 'Xerox')"
|
||||||
|
set rs = objconn.Execute(strSQL)
|
||||||
|
while not rs.eof
|
||||||
|
mapleft = rs("mapleft")
|
||||||
|
maptop = rs("maptop")
|
||||||
|
maptop = 2550-maptop
|
||||||
|
printerid = rs("printerid")
|
||||||
|
printercsfname = rs("printercsfname")
|
||||||
|
modelnumber = rs("modelnumber")
|
||||||
|
image = rs("image")
|
||||||
|
ipaddress = rs("ipaddress")
|
||||||
|
fqdn = rs("fqdn")
|
||||||
|
vendor = rs("vendor")
|
||||||
|
|
||||||
|
' Get machine name
|
||||||
|
if NOT IsNull(rs("alias")) AND rs("alias") <> "" THEN
|
||||||
|
machineName = rs("alias")
|
||||||
|
else
|
||||||
|
machineName = rs("machinenumber")
|
||||||
|
end if
|
||||||
|
|
||||||
|
location = machineName
|
||||||
|
|
||||||
|
if image = "" THEN
|
||||||
|
image = "Versalink-C7125.png"
|
||||||
|
end if
|
||||||
|
|
||||||
|
' Generate standardized printer name using same logic as api_printers.asp
|
||||||
|
Dim cleanMachine, cleanModel, shortDescription, standardName
|
||||||
|
cleanMachine = Replace(machineName, " ", "")
|
||||||
|
cleanMachine = Replace(cleanMachine, "Machine", "")
|
||||||
|
cleanModel = Replace(modelnumber, " ", "")
|
||||||
|
|
||||||
|
' Extract short description from model number
|
||||||
|
If InStr(cleanModel, "ColorLaserJet") > 0 Then
|
||||||
|
shortDescription = "ColorLaserJet"
|
||||||
|
ElseIf InStr(cleanModel, "LaserJetPro") > 0 Then
|
||||||
|
shortDescription = "LaserJetPro"
|
||||||
|
ElseIf InStr(cleanModel, "LaserJet") > 0 Then
|
||||||
|
shortDescription = "LaserJet"
|
||||||
|
ElseIf InStr(cleanModel, "Altalink") > 0 Then
|
||||||
|
shortDescription = "Altalink"
|
||||||
|
ElseIf InStr(cleanModel, "Versalink") > 0 Then
|
||||||
|
shortDescription = "Versalink"
|
||||||
|
ElseIf InStr(cleanModel, "DesignJet") > 0 Then
|
||||||
|
shortDescription = "DesignJet"
|
||||||
|
Else
|
||||||
|
' Extract model prefix before numbers
|
||||||
|
Dim i, char
|
||||||
|
shortDescription = ""
|
||||||
|
For i = 1 To Len(cleanModel)
|
||||||
|
char = Mid(cleanModel, i, 1)
|
||||||
|
If char >= "0" And char <= "9" Then
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
shortDescription = shortDescription & char
|
||||||
|
Next
|
||||||
|
If shortDescription = "" Then
|
||||||
|
shortDescription = cleanModel
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
' Build standard name: CSFName-Location-VendorModel (no dash between vendor and model)
|
||||||
|
If printercsfname <> "" And printercsfname <> "NONE" And printercsfname <> "gage lab " Then
|
||||||
|
If cleanMachine <> "" Then
|
||||||
|
standardName = printercsfname & "-" & cleanMachine & "-" & vendor & shortDescription
|
||||||
|
Else
|
||||||
|
standardName = printercsfname & "-" & vendor & shortDescription
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If cleanMachine <> "" Then
|
||||||
|
standardName = cleanMachine & "-" & vendor & shortDescription
|
||||||
|
Else
|
||||||
|
standardName = "Printer" & printerid & "-" & vendor & shortDescription
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
printerwindowsname = standardName
|
||||||
|
%>
|
||||||
|
(function() {
|
||||||
|
var printerId = '<%Response.Write(printerid)%>';
|
||||||
|
var printerName = '<%Response.Write(printerwindowsname)%>';
|
||||||
|
var csfName = '<%Response.Write(printercsfname)%>';
|
||||||
|
var location = '<%Response.Write(location)%>';
|
||||||
|
|
||||||
|
printerData[printerId] = {
|
||||||
|
name: printerName,
|
||||||
|
csf: csfName,
|
||||||
|
location: location,
|
||||||
|
model: '<%Response.Write(modelnumber)%>',
|
||||||
|
ip: '<%Response.Write(ipaddress)%>',
|
||||||
|
fqdn: '<%Response.Write(fqdn)%>'
|
||||||
|
};
|
||||||
|
|
||||||
|
var normalIcon = L.icon({
|
||||||
|
iconUrl: './images/printers/<%Response.Write(image)%>',
|
||||||
|
iconSize: [60, 60],
|
||||||
|
iconAnchor: [30, 30],
|
||||||
|
popupAnchor: [0, -30],
|
||||||
|
className: 'printer-icon-normal'
|
||||||
|
});
|
||||||
|
|
||||||
|
var selectedIcon = L.icon({
|
||||||
|
iconUrl: './images/printers/<%Response.Write(image)%>',
|
||||||
|
iconSize: [70, 70],
|
||||||
|
iconAnchor: [35, 35],
|
||||||
|
popupAnchor: [0, -35],
|
||||||
|
className: 'printer-icon-selected'
|
||||||
|
});
|
||||||
|
|
||||||
|
var marker = L.marker([<%Response.Write(maptop)%>, <%Response.Write(mapleft)%>], {
|
||||||
|
title: printerName,
|
||||||
|
icon: normalIcon,
|
||||||
|
printerId: printerId
|
||||||
|
}).addTo(map);
|
||||||
|
|
||||||
|
printerData[printerId].marker = marker;
|
||||||
|
printerData[printerId].normalIcon = normalIcon;
|
||||||
|
printerData[printerId].selectedIcon = selectedIcon;
|
||||||
|
|
||||||
|
marker.on('click', function() {
|
||||||
|
togglePrinter(printerId);
|
||||||
|
});
|
||||||
|
|
||||||
|
var popupContent = '<div style="background:#1f1f1f; color:#fff; min-width:280px; border-radius:4px; overflow:hidden;">' +
|
||||||
|
'<div style="background:' + config.gradient + '; padding:10px 15px; border-bottom:1px solid #444;">' +
|
||||||
|
'<h6 style="margin:0; color:#fff; font-size:14px;"><%Response.Write(printerwindowsname)%></h6>' +
|
||||||
|
'</div>' +
|
||||||
|
'<div style="padding:10px 15px; font-size:12px;">' +
|
||||||
|
'<div style="margin:5px 0;"><strong style="color:#aaa;">CSF:</strong> <span style="color:#fff;"><%Response.Write(printercsfname)%></span></div>' +
|
||||||
|
'<div style="margin:5px 0;"><strong style="color:#aaa;">Location:</strong> <span style="color:#fff;"><%Response.Write(location)%></span></div>' +
|
||||||
|
'<div style="margin:5px 0;"><strong style="color:#aaa;">Model:</strong> <span style="color:#fff;"><%Response.Write(modelnumber)%></span></div>' +
|
||||||
|
'</div>' +
|
||||||
|
'<div style="padding:10px 15px; border-top:1px solid #444; text-align:center;">' +
|
||||||
|
'<button onclick="togglePrinter(\'' + printerId + '\')" style="background:' + config.gradient + '; color:#fff; border:none; padding:6px 16px; border-radius:3px; cursor:pointer; font-size:12px;">' +
|
||||||
|
'<i class="zmdi zmdi-plus"></i> <span id="toggle-btn-' + printerId + '">Add to Selection</span>' +
|
||||||
|
'</button>' +
|
||||||
|
'</div>' +
|
||||||
|
'</div>';
|
||||||
|
|
||||||
|
marker.bindPopup(popupContent);
|
||||||
|
})();
|
||||||
|
<%
|
||||||
|
rs.movenext
|
||||||
|
Wend
|
||||||
|
objConn.Close
|
||||||
|
%>
|
||||||
|
|
||||||
|
// Add CSS for selected markers
|
||||||
|
var style = document.createElement('style');
|
||||||
|
style.innerHTML = `
|
||||||
|
.printer-icon-selected {
|
||||||
|
filter: drop-shadow(0 0 10px #4caf50) brightness(1.3);
|
||||||
|
z-index: 1000 !important;
|
||||||
|
}
|
||||||
|
.printer-icon-normal {
|
||||||
|
filter: grayscale(50%) brightness(0.8);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.head.appendChild(style);
|
||||||
|
|
||||||
|
function togglePrinter(printerId) {
|
||||||
|
if (selectedPrinters[printerId]) {
|
||||||
|
// Deselect
|
||||||
|
delete selectedPrinters[printerId];
|
||||||
|
printerData[printerId].marker.setIcon(printerData[printerId].normalIcon);
|
||||||
|
} else {
|
||||||
|
// Select
|
||||||
|
selectedPrinters[printerId] = true;
|
||||||
|
printerData[printerId].marker.setIcon(printerData[printerId].selectedIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateSelectionUI();
|
||||||
|
updatePopupButton(printerId);
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatePopupButton(printerId) {
|
||||||
|
var btn = document.getElementById('toggle-btn-' + printerId);
|
||||||
|
if (btn) {
|
||||||
|
if (selectedPrinters[printerId]) {
|
||||||
|
btn.innerHTML = 'Remove from Selection';
|
||||||
|
btn.parentElement.innerHTML = btn.parentElement.innerHTML.replace('zmdi-plus', 'zmdi-minus');
|
||||||
|
} else {
|
||||||
|
btn.innerHTML = 'Add to Selection';
|
||||||
|
btn.parentElement.innerHTML = btn.parentElement.innerHTML.replace('zmdi-minus', 'zmdi-plus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSelectionUI() {
|
||||||
|
var count = Object.keys(selectedPrinters).length;
|
||||||
|
document.getElementById('selectedCount').innerText = count;
|
||||||
|
|
||||||
|
var container = document.getElementById('selectedPrinters');
|
||||||
|
var installBtn = document.getElementById('installBtn');
|
||||||
|
|
||||||
|
if (count === 0) {
|
||||||
|
container.innerHTML = '<div style="color:#888; font-size:12px; text-align:center; padding:20px;">No printers selected yet</div>';
|
||||||
|
installBtn.style.display = 'none';
|
||||||
|
} else {
|
||||||
|
var html = '';
|
||||||
|
for (var printerId in selectedPrinters) {
|
||||||
|
var printer = printerData[printerId];
|
||||||
|
html += '<div class="selected-printer-item">' +
|
||||||
|
'<span class="remove-btn" onclick="togglePrinter(\'' + printerId + '\')">×</span>' +
|
||||||
|
'<strong>' + (printer.csf || 'N/A') + '</strong><br>' +
|
||||||
|
'<span style="font-size:11px; color:#aaa;">' + printer.location + '</span>' +
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
container.innerHTML = html;
|
||||||
|
installBtn.style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function clearSelection() {
|
||||||
|
for (var printerId in selectedPrinters) {
|
||||||
|
printerData[printerId].marker.setIcon(printerData[printerId].normalIcon);
|
||||||
|
}
|
||||||
|
selectedPrinters = {};
|
||||||
|
updateSelectionUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadInstaller() {
|
||||||
|
var printerNames = [];
|
||||||
|
for (var printerId in selectedPrinters) {
|
||||||
|
printerNames.push(printerData[printerId].name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (printerNames.length === 0) {
|
||||||
|
alert('Please select at least one printer');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate download link with all selected printers
|
||||||
|
var printerParam = printerNames.join(',');
|
||||||
|
window.location.href = 'install_printer.asp?printer=' + encodeURIComponent(printerParam);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
348
HIDCardPrinter/HIDCardPrinter.iss
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
; HID Card Printer Driver Installer
|
||||||
|
; Installs drivers for HID card printers (DTC4500e, DTC1250e, etc.)
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppId={{9F7E2B3C-4A1D-5E8F-B6C9-1D3A5F7E2C4B}}
|
||||||
|
AppName=WJDT HID Card Printer Driver Installer
|
||||||
|
AppVersion=1.0
|
||||||
|
AppPublisher=WJDT
|
||||||
|
AppPublisherURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
AppSupportURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
AppUpdatesURL=http://tsgwp00524.logon.ds.ge.com
|
||||||
|
CreateAppDir=no
|
||||||
|
ChangesAssociations=no
|
||||||
|
PrivilegesRequired=admin
|
||||||
|
OutputDir=C:\Users\570005354\Downloads\Output
|
||||||
|
OutputBaseFilename=HIDCardPrinterInstaller
|
||||||
|
SolidCompression=yes
|
||||||
|
WizardStyle=modern
|
||||||
|
SetupIconFile=gea-logo.ico
|
||||||
|
WizardImageFile=patrick.bmp
|
||||||
|
WizardSmallImageFile=patrick-sm.bmp
|
||||||
|
CreateUninstallRegKey=no
|
||||||
|
DisableWelcomePage=no
|
||||||
|
|
||||||
|
[Languages]
|
||||||
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
|
|
||||||
|
[Messages]
|
||||||
|
WelcomeLabel2=This utility will install HID card printer drivers for badge and ID card printing.%n%nIt will:%n- Install HID card printer drivers%n- Support USB-connected card printers%n- Configure drivers for Windows%n%nSupported Models:%n- HID FARGO DTC4500e%n- HID FARGO DTC1250e%n- HID FARGO HDP5000%n%nClick Next to continue.
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
; HID DTC4500e Driver
|
||||||
|
Source: "drivers\HID_DTC4500e\*"; DestDir: "{tmp}\hid_dtc4500e"; Flags: ignoreversion recursesubdirs
|
||||||
|
|
||||||
|
; Add additional HID models here as needed
|
||||||
|
; Source: "drivers\HID_DTC1250e\*"; DestDir: "{tmp}\hid_dtc1250e"; Flags: ignoreversion recursesubdirs
|
||||||
|
; Source: "drivers\HID_HDP5000\*"; DestDir: "{tmp}\hid_hdp5000"; Flags: ignoreversion recursesubdirs
|
||||||
|
|
||||||
|
[Code]
|
||||||
|
var
|
||||||
|
ModelSelectionPage: TInputOptionWizardPage;
|
||||||
|
AvailableModels: array of record
|
||||||
|
ModelName: String;
|
||||||
|
DriverPath: String;
|
||||||
|
InfFile: String;
|
||||||
|
DriverDisplayName: String;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Initialize available printer models
|
||||||
|
procedure InitializeModels();
|
||||||
|
begin
|
||||||
|
SetArrayLength(AvailableModels, 1); // Expand to 3 when you have more drivers
|
||||||
|
|
||||||
|
// HID FARGO DTC4500e
|
||||||
|
AvailableModels[0].ModelName := 'HID FARGO DTC4500e';
|
||||||
|
AvailableModels[0].DriverPath := ExpandConstant('{tmp}\hid_dtc4500e');
|
||||||
|
AvailableModels[0].InfFile := 'dtc4500e.inf'; // Update with actual INF filename
|
||||||
|
AvailableModels[0].DriverDisplayName := 'HID FARGO DTC4500e Card Printer';
|
||||||
|
|
||||||
|
// Add more models when drivers are available:
|
||||||
|
// AvailableModels[1].ModelName := 'HID FARGO DTC1250e';
|
||||||
|
// AvailableModels[1].DriverPath := ExpandConstant('{tmp}\hid_dtc1250e');
|
||||||
|
// AvailableModels[1].InfFile := 'dtc1250e.inf';
|
||||||
|
// AvailableModels[1].DriverDisplayName := 'HID FARGO DTC1250e Card Printer';
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Check which drivers are already installed
|
||||||
|
function CheckInstalledDrivers(): Boolean;
|
||||||
|
var
|
||||||
|
ResultCode: Integer;
|
||||||
|
TempScriptPath, TempOutputPath: String;
|
||||||
|
PSScript: String;
|
||||||
|
Output: AnsiString;
|
||||||
|
Lines: TStringList;
|
||||||
|
I, J: Integer;
|
||||||
|
FoundDriver: Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
|
||||||
|
// Build PowerShell script to get installed printer drivers
|
||||||
|
PSScript :=
|
||||||
|
'try {' + #13#10 +
|
||||||
|
' Get-PrinterDriver | Select-Object -ExpandProperty Name | ForEach-Object { Write-Output $_ }' + #13#10 +
|
||||||
|
'} catch { exit 1 }';
|
||||||
|
|
||||||
|
TempScriptPath := ExpandConstant('{tmp}\check_drivers.ps1');
|
||||||
|
TempOutputPath := ExpandConstant('{tmp}\drivers_output.txt');
|
||||||
|
|
||||||
|
SaveStringToFile(TempScriptPath, PSScript, False);
|
||||||
|
|
||||||
|
if not Exec('powershell.exe',
|
||||||
|
'-NoProfile -ExecutionPolicy Bypass -Command "& ''' + TempScriptPath + ''' | Out-File -FilePath ''' + TempOutputPath + ''' -Encoding ASCII"',
|
||||||
|
'', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
|
||||||
|
begin
|
||||||
|
DeleteFile(TempScriptPath);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
DeleteFile(TempScriptPath);
|
||||||
|
|
||||||
|
if not FileExists(TempOutputPath) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
if not LoadStringFromFile(TempOutputPath, Output) then
|
||||||
|
begin
|
||||||
|
DeleteFile(TempOutputPath);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
DeleteFile(TempOutputPath);
|
||||||
|
|
||||||
|
Lines := TStringList.Create;
|
||||||
|
try
|
||||||
|
Lines.Text := Output;
|
||||||
|
Result := True; // Successfully retrieved driver list
|
||||||
|
finally
|
||||||
|
Lines.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Initialize wizard pages
|
||||||
|
procedure InitializeWizard();
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
DisplayText: String;
|
||||||
|
begin
|
||||||
|
// Initialize available models
|
||||||
|
InitializeModels();
|
||||||
|
|
||||||
|
// Check which drivers are installed
|
||||||
|
CheckInstalledDrivers();
|
||||||
|
|
||||||
|
// Create model selection page
|
||||||
|
ModelSelectionPage := CreateInputOptionPage(wpWelcome,
|
||||||
|
'Select Card Printer Models',
|
||||||
|
'Choose which HID card printer drivers to install',
|
||||||
|
'Select the models you need. Drivers will be installed for USB-connected card printers.',
|
||||||
|
False,
|
||||||
|
False);
|
||||||
|
|
||||||
|
// Add models to selection page
|
||||||
|
for I := 0 to GetArrayLength(AvailableModels) - 1 do
|
||||||
|
begin
|
||||||
|
DisplayText := AvailableModels[I].ModelName + ' - USB Card Printer';
|
||||||
|
ModelSelectionPage.Add(DisplayText);
|
||||||
|
|
||||||
|
// Default to selected
|
||||||
|
ModelSelectionPage.Values[I] := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Validate selection before continuing
|
||||||
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
HasSelection: Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
|
||||||
|
if CurPageID = ModelSelectionPage.ID then
|
||||||
|
begin
|
||||||
|
HasSelection := False;
|
||||||
|
|
||||||
|
// Check if at least one model is selected
|
||||||
|
for I := 0 to GetArrayLength(AvailableModels) - 1 do
|
||||||
|
begin
|
||||||
|
if ModelSelectionPage.Values[I] then
|
||||||
|
begin
|
||||||
|
HasSelection := True;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if not HasSelection then
|
||||||
|
begin
|
||||||
|
MsgBox('Please select at least one printer model to install.',
|
||||||
|
mbInformation, MB_OK);
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Install drivers during installation phase
|
||||||
|
procedure CurStepChanged(CurStep: TSetupStep);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
PSScript: String;
|
||||||
|
TempScriptPath: String;
|
||||||
|
ResultCode: Integer;
|
||||||
|
SelectedCount: Integer;
|
||||||
|
begin
|
||||||
|
// Run after files are extracted but before finishing
|
||||||
|
if CurStep = ssPostInstall then
|
||||||
|
begin
|
||||||
|
// Count selected models
|
||||||
|
SelectedCount := 0;
|
||||||
|
for I := 0 to GetArrayLength(AvailableModels) - 1 do
|
||||||
|
begin
|
||||||
|
if ModelSelectionPage.Values[I] then
|
||||||
|
SelectedCount := SelectedCount + 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if SelectedCount = 0 then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
// Build PowerShell installation script
|
||||||
|
PSScript :=
|
||||||
|
'$ErrorActionPreference = "Continue"' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " HID Card Printer Driver Installer" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'# Function to install card printer driver' + #13#10 +
|
||||||
|
'function Install-CardPrinterDriver {' + #13#10 +
|
||||||
|
' param(' + #13#10 +
|
||||||
|
' [string]$ModelName,' + #13#10 +
|
||||||
|
' [string]$DriverPath,' + #13#10 +
|
||||||
|
' [string]$InfFile' + #13#10 +
|
||||||
|
' )' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' try {' + #13#10 +
|
||||||
|
' Write-Host ""' + #13#10 +
|
||||||
|
' Write-Host "Installing: $ModelName" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
' Write-Host " Driver Path: $DriverPath" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' $infPath = Join-Path $DriverPath $InfFile' + #13#10 +
|
||||||
|
' if (-not (Test-Path $infPath)) {' + #13#10 +
|
||||||
|
' Write-Host " ERROR: INF file not found: $infPath" -ForegroundColor Red' + #13#10 +
|
||||||
|
' return $false' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' Write-Host " INF File: $InfFile" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' # Locate pnputil.exe' + #13#10 +
|
||||||
|
' $pnputil = $null' + #13#10 +
|
||||||
|
' $pnputilLocations = @(' + #13#10 +
|
||||||
|
' (Join-Path $env:SystemRoot "System32\pnputil.exe"),' + #13#10 +
|
||||||
|
' (Join-Path $env:SystemRoot "SysNative\pnputil.exe"),' + #13#10 +
|
||||||
|
' "C:\Windows\System32\pnputil.exe"' + #13#10 +
|
||||||
|
' )' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' foreach ($location in $pnputilLocations) {' + #13#10 +
|
||||||
|
' if (Test-Path $location) {' + #13#10 +
|
||||||
|
' $pnputil = $location' + #13#10 +
|
||||||
|
' break' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' if (-not $pnputil) {' + #13#10 +
|
||||||
|
' $pnputil = "pnputil.exe"' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' # Install driver package using pnputil' + #13#10 +
|
||||||
|
' Write-Host " Installing driver package..." -ForegroundColor Yellow' + #13#10 +
|
||||||
|
' try {' + #13#10 +
|
||||||
|
' $pnpResult = & $pnputil /add-driver $infPath /install /force 2>&1' + #13#10 +
|
||||||
|
' $pnpExitCode = $LASTEXITCODE' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
' # Exit code 0 = success, 259 = driver already installed' + #13#10 +
|
||||||
|
' if ($pnpExitCode -eq 0 -or $pnpExitCode -eq 259) {' + #13#10 +
|
||||||
|
' if ($pnpExitCode -eq 259) {' + #13#10 +
|
||||||
|
' Write-Host " Driver already installed" -ForegroundColor Green' + #13#10 +
|
||||||
|
' } else {' + #13#10 +
|
||||||
|
' Write-Host " Driver package installed successfully" -ForegroundColor Green' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
' return $true' + #13#10 +
|
||||||
|
' } else {' + #13#10 +
|
||||||
|
' Write-Host " Warning: pnputil returned code $pnpExitCode" -ForegroundColor Yellow' + #13#10 +
|
||||||
|
' Write-Host " $pnpResult" -ForegroundColor Gray' + #13#10 +
|
||||||
|
' return $false' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
' } catch {' + #13#10 +
|
||||||
|
' Write-Host " ERROR: $_" -ForegroundColor Red' + #13#10 +
|
||||||
|
' return $false' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
' } catch {' + #13#10 +
|
||||||
|
' Write-Host " ERROR: $_" -ForegroundColor Red' + #13#10 +
|
||||||
|
' return $false' + #13#10 +
|
||||||
|
' }' + #13#10 +
|
||||||
|
'}' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'Write-Host "Installing selected HID card printer drivers..." -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'' + #13#10 +
|
||||||
|
'$successCount = 0' + #13#10 +
|
||||||
|
'$failCount = 0' + #13#10 +
|
||||||
|
'' + #13#10;
|
||||||
|
|
||||||
|
// Add installation commands for each selected model
|
||||||
|
for I := 0 to GetArrayLength(AvailableModels) - 1 do
|
||||||
|
begin
|
||||||
|
if ModelSelectionPage.Values[I] then
|
||||||
|
begin
|
||||||
|
PSScript := PSScript +
|
||||||
|
'if (Install-CardPrinterDriver -ModelName "' + AvailableModels[I].ModelName + '" ' +
|
||||||
|
'-DriverPath "' + AvailableModels[I].DriverPath + '" ' +
|
||||||
|
'-InfFile "' + AvailableModels[I].InfFile + '") {' + #13#10 +
|
||||||
|
' $successCount++' + #13#10 +
|
||||||
|
'} else {' + #13#10 +
|
||||||
|
' $failCount++' + #13#10 +
|
||||||
|
'}' + #13#10;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Add summary
|
||||||
|
PSScript := PSScript +
|
||||||
|
'' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " Installation Complete" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'if ($successCount -gt 0) {' + #13#10 +
|
||||||
|
' Write-Host " Drivers installed: $successCount" -ForegroundColor Green' + #13#10 +
|
||||||
|
'}' + #13#10 +
|
||||||
|
'if ($failCount -gt 0) {' + #13#10 +
|
||||||
|
' Write-Host " Failed installations: $failCount" -ForegroundColor Red' + #13#10 +
|
||||||
|
'}' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Next Steps:" -ForegroundColor Cyan' + #13#10 +
|
||||||
|
'Write-Host " 1. Connect your HID card printer via USB" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'Write-Host " 2. Windows will detect and configure it automatically" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'Write-Host " 3. Go to Devices and Printers to verify" -ForegroundColor Gray' + #13#10 +
|
||||||
|
'Write-Host ""' + #13#10 +
|
||||||
|
'Write-Host "Press any key to close..." -ForegroundColor Gray' + #13#10 +
|
||||||
|
'$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")';
|
||||||
|
|
||||||
|
// Save and execute script
|
||||||
|
TempScriptPath := ExpandConstant('{tmp}\install_hid_drivers.ps1');
|
||||||
|
SaveStringToFile(TempScriptPath, PSScript, False);
|
||||||
|
|
||||||
|
Exec('powershell.exe',
|
||||||
|
'-NoProfile -ExecutionPolicy Bypass -File "' + TempScriptPath + '"',
|
||||||
|
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
||||||
|
|
||||||
|
DeleteFile(TempScriptPath);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Skip directory selection
|
||||||
|
function ShouldSkipPage(PageID: Integer): Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
if PageID = wpSelectDir then
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
BIN
HIDCardPrinter/HIDDTC4500e/DrvX64.cab
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/PrinterDriverInstaller_x64.msi
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/BO_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/CLR.icm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/CLR_L.icm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/Color.bmp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP.hlp
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_AR.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_DE.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_EN.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_ES.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_FR.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_HI.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_ID.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_IT.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_JA.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_KO.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_PL.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_PT.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_RU.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/HLP_ZH.chm
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/ILN.bmp
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/ILR.bmp
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/IPN.bmp
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/IPR.bmp
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/KO_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/K_CLR_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/K_PRM_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/K_STD_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/LLN.bmp
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/LLR.bmp
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/LPN.bmp
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/LPR.bmp
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/NONE_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCFKOK_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCFKO_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCKK_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCKOK_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCKO_Half_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/common/YMCKO_Tst.prn
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!AdminExecuteSequence
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!AdminUISequence
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!AdvtExecuteSequence
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Binary
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Component
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!CustomAction
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Directory
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Feature
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!FeatureComponents
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!File
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Icon
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!InstallExecuteSequence
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!InstallUISequence
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Media
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!ModuleComponents
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!ModuleSignature
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!MsiDriverPackages
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!MsiFileHash
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Property
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Registry
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!RemoveFile
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!SelfReg
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!ServiceControl
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Shortcut
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!Upgrade
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!_Columns
Normal file
1
HIDCardPrinter/HIDDTC4500e/extracted/msi/!_StringData
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!_StringPool
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!_Tables
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/!_Validation
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/Binary.DIFxApp.dll
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/Binary.DIFxAppA.dll
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/Icon.icon.ico
Normal file
|
After Width: | Height: | Size: 293 KiB |
BIN
HIDCardPrinter/HIDDTC4500e/extracted/msi/[5]SummaryInformation
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/CAT
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/GR.dll
Normal file
179
HIDCardPrinter/HIDDTC4500e/extracted/x64/INF
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
;
|
||||||
|
;
|
||||||
|
; Fargo Printer Driver
|
||||||
|
; Fargo DTC4500e Printer INF for Windows XP; Windows Server 2003; Windows Vista; Windows 7; Server 2008R1; Windows Server 2008R2; Windows 8; Windows Server 2012
|
||||||
|
; Copyright (c) HID Global 2002-2014
|
||||||
|
;
|
||||||
|
;
|
||||||
|
|
||||||
|
[Version]
|
||||||
|
Signature="$Windows NT$"
|
||||||
|
Provider=%OEM%
|
||||||
|
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
|
||||||
|
Class=Printer
|
||||||
|
CatalogFile=DTC4500e_x64.cat
|
||||||
|
; Date & version of driver package
|
||||||
|
DriverVer=10/18/2022, 5.5.0.0
|
||||||
|
|
||||||
|
;
|
||||||
|
; Manufacturer section.
|
||||||
|
;
|
||||||
|
; This section lists all of the manufacturers
|
||||||
|
; that we will display in the Dialog box
|
||||||
|
;
|
||||||
|
[Manufacturer]
|
||||||
|
%Manufacturer%=FARGO,NTamd64
|
||||||
|
|
||||||
|
;
|
||||||
|
; Model sections.
|
||||||
|
;
|
||||||
|
; Each section here corresponds with an entry listed in the
|
||||||
|
; [Manufacturer] section, above. The models will be displayed in the order
|
||||||
|
; that they appear in the INF file.
|
||||||
|
;
|
||||||
|
[FARGO.NTamd64]
|
||||||
|
;
|
||||||
|
; DisplayName Section DeviceID
|
||||||
|
; ----------- ------- --------
|
||||||
|
"DTC4500e Card Printer" = DTC4500e, USBPRINT\HID_GlobalDTC4500e050F,HID_GlobalDTC4500e050F
|
||||||
|
|
||||||
|
;
|
||||||
|
; Comment out the following line until the INF Syntax Test failure is resolved
|
||||||
|
; The line was added for Windows Rally support per the "PnP-X: Plug and Play Extensions
|
||||||
|
; for Windows" specification.
|
||||||
|
;"DTC4500e Card Printer" = DTC4500e, UMB\Fargo_DTC4500e8534
|
||||||
|
|
||||||
|
;
|
||||||
|
; Installer Sections
|
||||||
|
;
|
||||||
|
; These sections control file installation, and reference all files that
|
||||||
|
; need to be copied. The section name will be assumed to be the driver
|
||||||
|
; file, unless there is an explicit DriverFile section listed.
|
||||||
|
;
|
||||||
|
[DTC4500e]
|
||||||
|
CopyFiles = DTC4500eCOPY, DTC4500eLM_COPY, DTC4500e_COLOR_PROFILES
|
||||||
|
DataSection = DTC4500eDATA
|
||||||
|
|
||||||
|
;
|
||||||
|
; Data Sections
|
||||||
|
;
|
||||||
|
[DTC4500eDATA]
|
||||||
|
DriverFile = DTC4500eGR.dll
|
||||||
|
DataFile = DTC4500eGR.dll
|
||||||
|
ConfigFile = DTC4500eUI.dll
|
||||||
|
HelpFile = DTC4500eHLP.HLP
|
||||||
|
LanguageMonitor = %OEM_MONITOR%
|
||||||
|
|
||||||
|
;
|
||||||
|
; Copy Sections
|
||||||
|
;
|
||||||
|
; Lists of files that are actually copied. These sections are referenced
|
||||||
|
; from the installer sections, above. Only create a section if it contains
|
||||||
|
; two or more files (if we only copy a single file, identify it in the
|
||||||
|
; installer section, using the @filename notation) or if it's a color
|
||||||
|
; profile (since the DestinationDirs can only handle sections, and not
|
||||||
|
; individual files).
|
||||||
|
;
|
||||||
|
[DTC4500e_COLOR_PROFILES]
|
||||||
|
DTC4500eCLR.icm,,,0x00000020 ; Copy only if new binary
|
||||||
|
DTC4500eCLR_L.icm,,,0x00000020 ; Copy only if new binary
|
||||||
|
|
||||||
|
[DTC4500eLM_COPY]
|
||||||
|
DTC4500eLM.dll,,,0x00000020 ; Copy only if new binary
|
||||||
|
|
||||||
|
[DTC4500eCOPY]
|
||||||
|
DTC4500eGR.dll
|
||||||
|
DTC4500eUI.dll
|
||||||
|
DTC4500eHlp.hlp
|
||||||
|
DTC4500e_BO_Tst.prn
|
||||||
|
DTC4500e_K_CLR_Tst.prn
|
||||||
|
DTC4500e_K_PRM_Tst.prn
|
||||||
|
DTC4500e_K_STD_Tst.prn
|
||||||
|
DTC4500e_KO_Tst.prn
|
||||||
|
DTC4500e_NONE_Tst.prn
|
||||||
|
DTC4500e_YMCFKO_Tst.prn
|
||||||
|
DTC4500e_YMCFKOK_Tst.prn
|
||||||
|
DTC4500e_YMCKK_Tst.prn
|
||||||
|
DTC4500e_YMCKO_Half_Tst.prn
|
||||||
|
DTC4500e_YMCKO_Tst.prn
|
||||||
|
DTC4500e_YMCKOK_Tst.prn
|
||||||
|
DTC4500eIPN.bmp
|
||||||
|
DTC4500eIPR.bmp
|
||||||
|
DTC4500eILN.bmp
|
||||||
|
DTC4500eILR.bmp
|
||||||
|
DTC4500eLPN.bmp
|
||||||
|
DTC4500eLPR.bmp
|
||||||
|
DTC4500eLLN.bmp
|
||||||
|
DTC4500eLLR.bmp
|
||||||
|
DTC4500eColor.bmp
|
||||||
|
DTC4500etbo.exe
|
||||||
|
DTC4500eMon.exe
|
||||||
|
DTC4500ePNP.dll
|
||||||
|
DTC4500eResEN.dll
|
||||||
|
|
||||||
|
;
|
||||||
|
; Call SetupSetDirectoryId with 66000 to set the target directory at runtime
|
||||||
|
; (depending on which environment drivers are getting installed)
|
||||||
|
;
|
||||||
|
[DestinationDirs]
|
||||||
|
DefaultDestDir = 66000
|
||||||
|
DTC4500eLM_COPY = 66002
|
||||||
|
DTC4500e_COLOR_PROFILES = 66003
|
||||||
|
|
||||||
|
[SourceDisksNames.amd64]
|
||||||
|
1 = %Disk1%,,,""
|
||||||
|
|
||||||
|
[SourceDisksFiles.amd64]
|
||||||
|
DTC4500eGR.dll = 1
|
||||||
|
DTC4500eUI.dll = 1
|
||||||
|
DTC4500eLM.dll = 1
|
||||||
|
DTC4500eResEN.dll = 1
|
||||||
|
DTC4500ePNP.dll = 1
|
||||||
|
DTC4500eHlp.hlp = 1
|
||||||
|
DTC4500e_BO_Tst.prn = 1
|
||||||
|
DTC4500e_K_CLR_Tst.prn = 1
|
||||||
|
DTC4500e_K_PRM_Tst.prn = 1
|
||||||
|
DTC4500e_K_STD_Tst.prn = 1
|
||||||
|
DTC4500e_KO_Tst.prn = 1
|
||||||
|
DTC4500e_NONE_Tst.prn = 1
|
||||||
|
DTC4500e_YMCFKO_Tst.prn = 1
|
||||||
|
DTC4500e_YMCFKOK_Tst.prn = 1
|
||||||
|
DTC4500e_YMCKK_Tst.prn = 1
|
||||||
|
DTC4500e_YMCKO_Half_Tst.prn = 1
|
||||||
|
DTC4500e_YMCKO_Tst.prn = 1
|
||||||
|
DTC4500e_YMCKOK_Tst.prn = 1
|
||||||
|
DTC4500eIPN.bmp = 1
|
||||||
|
DTC4500eIPR.bmp = 1
|
||||||
|
DTC4500eILN.bmp = 1
|
||||||
|
DTC4500eILR.bmp = 1
|
||||||
|
DTC4500eLPN.bmp = 1
|
||||||
|
DTC4500eLPR.bmp = 1
|
||||||
|
DTC4500eLLN.bmp = 1
|
||||||
|
DTC4500eLLR.bmp = 1
|
||||||
|
DTC4500eColor.bmp = 1
|
||||||
|
DTC4500etbo.exe = 1
|
||||||
|
DTC4500eMon.exe = 1
|
||||||
|
DTC4500eCLR.icm = 1
|
||||||
|
DTC4500eCLR_L.icm = 1
|
||||||
|
|
||||||
|
;
|
||||||
|
; Localizable Strings
|
||||||
|
;
|
||||||
|
[Strings]
|
||||||
|
OEM="Fargo"
|
||||||
|
PrinterClassName="Printers"
|
||||||
|
Disk1="OEM Driver Setup Disk 1"
|
||||||
|
OEM_MONITOR="DTC4500e Language Monitor,DTC4500eLM.DLL"
|
||||||
|
Manufacturer = "Fargo"
|
||||||
|
DTC4500e = "DTC4500e Card Printer"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/LM.dll
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/LocIface
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/PnP.dll
Normal file
BIN
HIDCardPrinter/HIDDTC4500e/extracted/x64/Port.dll
Normal file
15
HIDCardPrinter/HIDDTC4500e/extracted/x64/Port.ini
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[RemPort]
|
||||||
|
Name=DTC4500e TCP/IP Card Printer Port
|
||||||
|
Description=DTC4500e Card Printer TCP/IP Port
|
||||||
|
PortNameFormat=DTC4500ePTR::%s
|
||||||
|
|
||||||
|
|
||||||
|
; Supported values for OnPrintJobNotConfirmedDefault are:
|
||||||
|
; 0 = restart
|
||||||
|
; 1 = purge
|
||||||
|
; 2 = retain
|
||||||
|
;OnPrintJobNotConfirmedDefault=0
|
||||||
|
;
|
||||||
|
; Default if this is *NOT* defined is "restart"
|
||||||
|
|
||||||
|
|
||||||