AW: Programmupdate bei geöffneter EXE
Habe gestern auch auf Launcher-Programm umgestellt.
Danke für den Input. VG ZYL |
AW: Programmupdate bei geöffneter EXE
Ich hatte vor 'ner Weile eine Launcher-Batch gebastelt.
Es gab Probleme mit einem Netzwerk. Die EXE wird eigentlich direkt auf der Freigabe gestartet, aber dort wurde das nun in ein lokales Verzeichnis kopiert und von dort gestartet, aber die aktuellen Dateien sollen automatisch von der Freigabe kommen
Delphi-Quellcode:
\\NAS\MyPfad\MyProgramm.exe -parameter
Delphi-Quellcode:
C:\MyPfad\MyProgramm.local.cmd \\NAS\MyPfad -parameter
Eventuel aktive Instanz wird beendet. Das Verzeichnis wird synchronisiert. (XCOPY) > XCOPY hat im TestSystem aber einen Nachteil, denn Dateien können nur neuer werden
Delphi-Quellcode:
, aber nicht mehr älter
>
Delphi-Quellcode:
, wenn man eine ältere Version zurücksetze, will.
<>
Und die EXE gestartet > Parameter werden durchgereicht, abgesehn vom 1. Parameter. Als manuellen Link auf dem Desktop und nochmal in der Aufgabenplanung, wo täglich neu gestartet wird. Ist eine böse BATCH, mit integrierter EXCLUDE-Datei für's XCOPY. (nur eine Datei, statt Zwei)
Code:
Mit MyProgramm.exe und MyProgramm.cmd könnte man die hartcodierten Namen durch %~f0.exe ersetzen. (Namen wurden durch xxxx ersetzt)
@PROMPT @@$G$S
CD /D "%~dp0" REM REM example: "E:\xxxxx\xxxxx.local.cmd" \\MY-NAS\xxxxx\ -irgendwelche -Parameter @REM example as single-line command without batch: CMD /C "CD /D "E:\xxxxx"&&TASKKILL /F /IM xxxxx.exe&&ECHO Temp\>xcopy_exclude.txt&&ECHO Backup>>xcopy_exclude.txt&&ECHO xxxxxSrv*.ini>>xcopy_exclude.txt&&XCOPY \\MY-NAS\xxxxx\* .\ /D /S /E /H /R /C /G /K /Z /V /Y /EXCLUDE:xcopy_exclude.txt&&DEL xcopy_exclude.txt&&START "" /B xxxxx.exe -irgendwelche -Parameter @SET ERR=0 @ECHO. @ECHO #Source: %~1 @ECHO #Local: %~dp0 @IF NOT EXIST "%~1\xxxxx.exe" ( ECHO source-directory does not exist && SET ERR=1 ) @IF NOT EXIST "%~dp0\xxxxx.exe" ( ECHO local-directory is not correct && SET ERR=2 ) @IF NOT %ERR% == 0 GOTO error TASKKILL /F /IM xxxxx.exe 2>NUL @TITLE Download FileUpdates from %~1 XCOPY "%~1\*" "%~dp0" /D /S /E /H /R /C /G /K /Z /V /Y /EXCLUDE:%~f0 @IF ERRORLEVEL 2 SET ERR=3 @TITLE Start xxxxx.exe SHIFT /1 START "" /B xxxxx.exe %* @IF ERRORLEVEL 9059 SET ERR=4 @IF NOT %ERR% == 0 GOTO error @TIMEOUT /t 5 EXIT /B :error @TIMEOUT /t 300 EXIT %ERR% *** COPY-ExcludeList *** xxxxx.xxx xxxxx.ini Backup Temp\ .7z .zip Man könnte die Copy-Source aber z.B. auch in der CMD oder z.B. einer INI oder der Registry speichern, dann bräuchte man den Parameter nicht. |
AW: Programmupdate bei geöffneter EXE
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Danke an Alle. Zitat:
Zitat:
Ich habe eine Lösung für mich: 1. Build 2. Nach Build: Consolenprogramm -> 1: Rename der EXE 2: Kopie in einen Ordner (benannt mit den Dateieigenschaften "V_19_20200814_1500") Damit kiegt jede gestartete Instanz seinen eigenen Ordner 3: Kopie des neuen Programms in den Original Ordner Start über Lauchcher: 1: Prüfung welche Instanzen nicht mehr aktiv sind -> Entfernung des Ordners 2: Start der EXE In EXE: 1: Prüfung auf neueste Version (Thread) -> optischer Hinweis ("es gibt was Neues") Vorteile: 1: Da die EXE gleich heißt ist das angepinnte Symbol in der TNA immer noch angepinnt 2: Ich kann 5x hintereinander ein Update einspielen...jeder Neustart kriegt die neueste Version 3: Alle anderen Instanzen laufen normal weiter...mit Hinweis :thumb: Nachteile: 1: Bei DB Änderungen müssen alle raus. Das ist aber verträglich. :zwinker: |
AW: Programmupdate bei geöffneter EXE
Zitat:
Mit dynamisch geladenen DLLs und BPLs geht es einfach nicht anders. Auch wenn es nur eine EXE/DLL ist, oder wo bei Verwendung von BPLs immer alles beim Programmstart geladen wird (niemals dynamisch nachladen), selbt dann sollte man besser niemals ohne IMAGE_FILE_NET_RUN_FROM_SWAP und IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP ein derartiges Update machen. http://docwiki.embarcadero.com/RADSt...flags_(Delphi) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz