Files
imajviewer/uninstall.ps1
Alhan 88500ab800
Some checks failed
Build & Release / build-linux (push) Has been cancelled
Build & Release / build-windows (push) Has been cancelled
Build & Release / create-release (push) Has been cancelled
feat: Windows development tooling — build, install, uninstall scripts + setup guide
- build-windows.ps1: one-command Flutter build + Inno Setup installer pipeline
- install.ps1: manual Windows installer (registry, shortcuts, file associations)
- uninstall.ps1: clean removal script
- docs/windows-setup.md: Windows dev environment setup guide
- docs/index.md: updated with new files
2026-08-10 23:32:08 +03:00

159 lines
5.4 KiB
PowerShell
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#Requires -Version 5.1
<#
.SYNOPSIS
ImajViewer Windows kaldirma scripti
.DESCRIPTION
ImajViewer'i Windows sistemden tamamen kaldirir:
- Kurulum dizinini siler
- Registry'den uninstall girdisini siler
- Start Menu kisayolu silinir
- Dosya association'lar temizlenir
.PARAMETER InstallDir
Kurulum dizini. Belirtilmezse registry'den okunur.
.PARAMETER SkipConfirm
Onay sorusunu atlar (CI/otomasyon icin)
.EXAMPLE
.\uninstall.ps1
.\uninstall.ps1 --install-dir "C:\Program Files\ImajViewer"
.\uninstall.ps1 -SkipConfirm
#>
param(
[string]$InstallDir = "",
[switch]$SkipConfirm
)
# Renkli cikti
function Write-Step { param([string]$Msg) Write-Host "`n> $Msg" -ForegroundColor Cyan }
function Write-Ok { param([string]$Msg) Write-Host " [OK] $Msg" -ForegroundColor Green }
function Write-Err { param([string]$Msg) Write-Host " [X] $Msg" -ForegroundColor Red; exit 1 }
function Write-Warn { param([string]$Msg) Write-Host " [!] $Msg" -ForegroundColor Yellow }
$ErrorActionPreference = 'Stop'
$ProjectRoot = Split-Path -Parent $MyInvocation.MyCommand.Path
$AppName = "ImajViewer"
$AppExe = "imajviewer.exe"
$UninstallGuid = "B8F4A3D2-1C5E-4A7B-9D0F-6E2C8A1B3D5F"
# ── Kurulum dizinini bul ─────────────────────────────────
if (-not $InstallDir) {
# Registry'den oku
$regPaths = @(
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$UninstallGuid",
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$UninstallGuid"
)
foreach ($rp in $regPaths) {
if (Test-Path $rp) {
$InstallDir = (Get-ItemProperty -Path $rp).InstallLocation
break
}
}
}
if (-not $InstallDir -or -not (Test-Path $InstallDir)) {
# Varsayilan dizinleri kontrol et
$defaultPaths = @(
Join-Path ${env:ProgramFiles(x86)} $AppName,
Join-Path $env:ProgramFiles $AppName,
Join-Path $env:LOCALAPPDATA $AppName
)
foreach ($dp in $defaultPaths) {
if (Test-Path (Join-Path $dp $AppExe)) {
$InstallDir = $dp
break
}
}
}
if (-not $InstallDir) {
Write-Err "$AppName kurulumu bulunamadi. Manuel olarak kaldirmak icin Ayarlar > Uygulamalar kullanin."
}
Write-Host "=" * 60 -ForegroundColor White
Write-Host " ImajViewer Kaldirma" -ForegroundColor White
Write-Host "=" * 60 -ForegroundColor White
Write-Host " Install Dir : $InstallDir" -ForegroundColor Gray
Write-Host ""
# ── Onay ─────────────────────────────────────────────────
if (-not $SkipConfirm) {
$answer = Read-Host " Tum $AppName dosyalari ve ayarlari silinecek. Devam etmek istiyor musunuz? (E/H)"
if ($answer -ne 'E' -and $answer -ne 'e') {
Write-Host " Kaldirma iptal edildi." -ForegroundColor Yellow
exit 0
}
}
# ── Surucu olan process'leri kapat ───────────────────────
Write-Step "$AppExe process'leri kontrol ediliyor..."
$processes = Get-Process -Name (Split-Path $AppExe -Leaf) -ErrorAction SilentlyContinue
if ($processes) {
foreach ($p in $processes) {
Write-Host " Kapaniyor: $($p.Id) ($($p.Path))" -ForegroundColor Yellow
$p | Stop-Process -Force -ErrorAction SilentlyContinue
}
Start-Sleep -Seconds 1
}
Write-Ok "Process kontrolu tamam"
# ── Kurulum dizinini sil ─────────────────────────────────
Write-Step "Kurulum dizini siliniyor..."
if (Test-Path $InstallDir) {
Remove-Item -Path $InstallDir -Recurse -Force
Write-Ok "$InstallDir silindi"
}
# ── Registry: Uninstall girdisi ─────────────────────────
Write-Step "Registry girdileri temizleniyor..."
$regPaths = @(
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$UninstallGuid",
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$UninstallGuid"
)
foreach ($rp in $regPaths) {
if (Test-Path $rp) {
Remove-Item -Path $rp -Recurse -Force
Write-Ok "Registry silindi: $rp"
}
}
# Applications registry girdisi
$appRegKey = "HKCU:\Software\Classes\Applications\$AppExe"
if (Test-Path $appRegKey) {
Remove-Item -Path $appRegKey -Recurse -Force
Write-Ok "Applications registry girdisi silindi"
}
# ── Kisayollari sil ─────────────────────────────────────
Write-Step "Kisayollar siliniyor..."
$startMenuPaths = @(
Join-Path $env:APPDATA "Microsoft\Windows\Start Menu\Programs",
[Environment]::GetFolderPath("CommonPrograms")
)
foreach ($sm in $startMenuPaths) {
$lnk = Join-Path $sm "$AppName.lnk"
if (Test-Path $lnk) {
Remove-Item $lnk -Force
Write-Ok "Start Menu kisayolu silindi: $lnk"
}
}
$desktop = [Environment]::GetFolderPath("Desktop")
$desktopLnk = Join-Path $desktop "$AppName.lnk"
if (Test-Path $desktopLnk) {
Remove-Item $desktopLnk -Force
Write-Ok "Masaustu kisayolu silindi: $desktopLnk"
}
# ── Tamamlandı ──────────────────────────────────────────
Write-Host ""
Write-Host ("=" * 60) -ForegroundColor Green
Write-Host " $AppName basariyla kaldirildi!" -ForegroundColor Green
Write-Host ("=" * 60) -ForegroundColor Green
Write-Host ""