# Instalador de Pista: baja Pista.exe a %LOCALAPPDATA%\Pista, crea sus accesos y la abre. # Uso (Windows + R): powershell -c "[Net.ServicePointManager]::SecurityProtocol='Tls12';irm https://pista-audio.pages.dev/instalar.ps1|iex" # No pide permisos de administrador: todo queda dentro del usuario. $ErrorActionPreference = 'Stop' $ProgressPreference = 'SilentlyContinue' # sin barra, Invoke-WebRequest baja mucho mas rapido en PowerShell 5 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 try { $origen = 'https://pista-audio.pages.dev/Pista.exe' $carpeta = Join-Path $env:LOCALAPPDATA 'Pista' $exe = Join-Path $carpeta 'Pista.exe' $nuevo = "$exe.nuevo" Write-Host '' Write-Host ' Pista' -ForegroundColor DarkYellow Write-Host ' Descargando (12 MB)...' New-Item -ItemType Directory -Force -Path $carpeta | Out-Null Invoke-WebRequest -Uri $origen -OutFile $nuevo -UseBasicParsing # Si ya estaba abierta (actualizacion), se cierra para poder reemplazar el archivo. Get-Process -Name 'Pista' -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue for ($i = 0; $i -lt 20; $i++) { try { Move-Item -Force -Path $nuevo -Destination $exe; break } catch { Start-Sleep -Milliseconds 250 } } if (Test-Path $nuevo) { throw "No se pudo reemplazar $exe. Cierra Pista y vuelve a intentarlo." } $shell = New-Object -ComObject WScript.Shell $menu = Join-Path $env:APPDATA 'Microsoft\Windows\Start Menu\Programs' foreach ($lugar in @($menu, [Environment]::GetFolderPath('Desktop'))) { $acceso = $shell.CreateShortcut((Join-Path $lugar 'Pista.lnk')) $acceso.TargetPath = $exe $acceso.WorkingDirectory = $carpeta $acceso.IconLocation = "$exe,0" $acceso.Description = 'Buscador y descargador de audio' $acceso.Save() } Start-Process -FilePath $exe -WorkingDirectory $carpeta Write-Host ' Listo. Pista se abre en unos segundos; tambien queda en el menu Inicio y en el escritorio.' -ForegroundColor Green Write-Host '' } catch { Write-Host '' Write-Host (' No se pudo instalar Pista: ' + $_.Exception.Message) -ForegroundColor Red Read-Host ' Toca Enter para cerrar' }