AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delphi Silent Installation / EULA Abfrage umgehen
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Silent Installation / EULA Abfrage umgehen

Ein Thema von bernhard_LA · begonnen am 19. Jul 2022 · letzter Beitrag vom 25. Jul 2022
Antwort Antwort
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
383 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 20. Jul 2022, 06:40
...wir brauchen ein Batch Script welches ohne user interaktion auf wochenbasis Delphi ( und div. weitere Tools ) wirklich ohne Nachfragen installiert"...

Würde ich über einen regelmäßigen Reset auf einen definierten "VM-Snapshot" bzw. Snapshot eines "HD Imagetools" realisieren.
In Bildungseinrichtungen der absolute Standard, damit da im Idealfall täglich oder gar pro Unterrischtsstunde stets vorhersehbar die exalt gleichen System-Installationen aktiv sind.
Da werfe ich, mal wieder, Proxmox auf ZFS Basis ins Spiel.
Damit kann genau das spielend leicht und vor allem in der Anwendung pfeilschnell umgesetzt werden.
  Mit Zitat antworten Zitat
MTranel

Registriert seit: 29. Mär 2022
6 Beiträge
 
#2

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 20. Jul 2022, 16:59
In einem Versuch Embarcadero dazu zu bringen endlich aufzuwachen poste ich hier diesen Unfall eines Scripts, welches wir nutzen um Delphi mit Packer automatisiert zu installieren. Es handelt sich natürlich um einen Auszug (Rest dürfte selbsterklärend für Leute sein die schon mal ne Exe mit Powershell gestartet haben) der speziell mit WMI das neu gespawnte EULA Window sucht und mit Window Messages die Y-Taste verschickt.
/AcceptEULA ist ein gelöstes Problem im Setup-Bereich - verstehe einfach nicht Embarcadero das verkacken konnte.

Code:
$SetupProcess = Start-Process -FilePath $SetupPath -ArgumentList "$arguments" -PassThru -NoNewWindow
$Signature = @"
    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern bool AttachConsole(uint dwProcessId);

    [DllImport("kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();

    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    public static extern bool FreeConsole();

    [DllImport("user32.dll")]
    public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
"@

Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $Signature -PassThru | Out-Null

$StartTime = Get-Date
do {
    $TimeElapsed = $(Get-Date) - $StartTime
    if ($($TimeElapsed).TotalMinutes -ge 5) {
        Write-Output "Could not find EULA choice process after 5 minutes."
        throw
    }
    Start-Sleep -Seconds 1
    $SetupProcessId = Get-WmiObject Win32_Process | Where-Object {$_.ProcessName -eq "Setup.tmp"} | Select-Object -ExpandProperty ProcessId
    $CmdProcessId = Get-WmiObject Win32_Process | Where-Object {$_.ParentProcessId -eq $SetupProcessId} | Select-Object -ExpandProperty ProcessId
} until ($CmdProcessId -ne 0)

$WM_KEYDOWN = 0x0100
$VK_Y_KEY = 0x59

[Win32.Funcs]::FreeConsole() | Out-Null
[Win32.Funcs]::AttachConsole($CmdProcessId) | Out-Null
$Handle = [Win32.Funcs]::GetConsoleWindow()
[Win32.Funcs]::PostMessage($Handle, $WM_KEYDOWN, $VK_Y_KEY, 0) | Out-Null
[Win32.Funcs]::FreeConsole() | Out-Null
Man muss PowerShell/dotnet natürlich verstehen aber ich glaube das sollte nicht das größte Problem sein.

Geändert von MTranel (20. Jul 2022 um 17:05 Uhr) Grund: Ganz vergessen wir sind im deutschen Forum
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 21. Jul 2022, 12:06
wir brauchen ein script - Installation muss im Rahmen der wöchentlichen Neuinstallation von Docker Containern erfolgen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 21. Jul 2022, 12:31
Das ist doch ein Script (.ps1 aka Powershell)

Da sich Windows aber standardmäßig weigert Powershell-Scripte direkt auszuführen,
kannst du die .ps1 nicht wie eine .bat oder .cmd starten, sondern mußt es direkt der powershell.exe geben, oder im Windows die Richtlinie ändern.
https://stackoverflow.com/questions/...ershell-script



Im Jira fragen betteln, ob die den fehlenden Parameter nicht mal einbauen können.

Bis 2029 sollten sie es bestimmt schaffen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Jul 2022 um 12:39 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 25. Jul 2022, 08:12
löst Powershell mein Problem , kann ich damit das Y an die Eula abfrage senden ?
Powershell nennt sich auf meinem System pscore6....

Delphi-Quellcode:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users>

Geändert von bernhard_LA (25. Jul 2022 um 08:15 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 25. Jul 2022, 08:27
wir haben schon sehr viel Aufwand für die Suche nach einer Lösung spendiert,
hat jemand eine bessere Idee ?
Direkt gestartet geht der Ansatz aber nicht im Batch Script mode für Puppet und JENKINS zusammen



Delphi-Quellcode:

@if (@CodeSection == @Batch) @then
 
@echo off
 
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
 
start "" /B radstudio_10_4_esd_104203a.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SLIPFILE=concurrent_000000.slip /FEATURES=delphi_windows
 
ping -n 10 -w 1 127.0.0.1 > NUL
%SendKeys% "Y"
 
rem Wait for 10 minutes until installation is done and kill sdksetup.exe in case it appears
rem Feel free to remove these steps in case they are not required or to change the waiting time
ping -n 600 -w 1 127.0.0.1 > NUL
taskkill /f /im sdksetup.exe >nul 2>&1
 
goto :EOF
 
 
@end
 
// JScript section
 
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0))
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 25. Jul 2022, 08:34
Hat der Installer, bzw. dessen Console auch den Fokus, damit die Taste dort landet?

und sicher, dass dein "Script" wirklich richtig ausgeführt wird?

Warum zwei //
und keiner prüft die Rückgabewerte


ping -> timeout /t 10
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Jul 2022 um 08:41 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Delphi Silent Installation / EULA Abfrage umgehen

  Alt 25. Jul 2022, 13:03
löst Powershell mein Problem , kann ich damit das Y an die Eula abfrage senden ?
Powershell nennt sich auf meinem System pscore6....

Delphi-Quellcode:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users>
Steht alles im Beitrag #8 (https://www.delphipraxis.net/1508982-post8.html), aber man muss sich mit PowerShell auch auseinandersetzen.
Jenkins kann auch PowerShell-Skripte ausführen, ggf. braucht man noch das passende Plugin dazu.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz