Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   ShellExecute (https://www.delphipraxis.net/204573-shellexecute.html)

Kratos 8. Jun 2020 11:05

AW: ShellExecute
 
Ihr glaubt ja gar nicht wie verdammt bescheuert ich bin!
Ich hatte vor einiger Zeit auf einer anderen Platte ein Backup meines Projekts angelegt.
An meinem Backup arbeite ich ja aber nicht aktiv, sondern arbeite auf einer ganz anderen Partition. Ich hab die bat in meinen Backup-Ordner gelegt.
Oh my fcking god!

Es funktioniert jetzt :D


Ich bedanke mich dennoch bei allen für eure großartige Hilfe, besonders bei @Moombas.
Deine detailreiche Erklärung hat mich trotzdem weiter gebracht :)

VG Kratos

Moombas 8. Jun 2020 11:08

AW: ShellExecute
 
Naja Detailreich fand ich sie nun nicht.

Generell kann ich dir bei soetwas nur empfehlen, wie es Günther schrieb: Schau dir das wo es nicht funktioniert im Debugger an und/oder gebe einfach mal aus (hier der Pfad+Dateiname), was du an eine Funktion übergibst (sofern generiert und nicht fix übergeben).

Dann wird man in der Regel schnell fündig wo der Hase im Pfeffer liegt.

jaenicke 8. Jun 2020 11:45

AW: ShellExecute
 
Zitat:

Zitat von Kratos (Beitrag 1466723)
Ich hatte vor einiger Zeit auf einer anderen Platte ein Backup meines Projekts angelegt.
An meinem Backup arbeite ich ja aber nocht aktiv, sondern arbeite auf einer ganz anderen Partition.

Dafür gibt es Versionsverwaltungen wie Git oder SVN, dann braucht man kein Backup in Form von kopierten oder gezippten Quelltextverzeichnissen und man kann auch viel bequemer damit arbeiten...
https://entwickler-ecke.de/topic_Kur..._115462,0.html

Moombas 8. Jun 2020 11:54

AW: ShellExecute
 
Zitat:

Zitat von Kratos (Beitrag 1466712)
@Moombas
Ich möchte später mein eigenes Programm schließen, die alte exe löschen, eine neue exe in den Ordner kopieren und anschließend wieder ausführen lassen.
Deswegen hatte ich mir gedacht, dass ich das ganze in eine batch-Datei auslagere und schon mal mit einfachen Textdateien diesen Vorgang übe.^^

@Kratos: Da dein Problem behoben zu sein scheint, möchte ich nochmal hier drauf eingehen (s.o.).
Das hört sich nach einer Update-Routine an.
Klingt evtl. etwas merkwürdig aber ich würde es (gerade zum Lernen) an deiner Stelle auch in Delphi schreiben.
Insbesondere wenn solche Update-Routinen später etwas umfangreicher werden, z.B. mit der Einbindung einer Möglichkeit des Rollback, falls das Update fehlschlägt etc. wird das in einer Batch nachher schnell unübersichtlich oder auch nicht praktikabel.

Kratos 8. Jun 2020 12:15

AW: ShellExecute
 
@jaenicke

Git und SVN sind mir bekannt, auch wenn ich diese noch nicht genutzt habe.
Danke für deinen Tipp, nun scheint es wohl doch an der Zeit zu sein, dass ich mich näher damit beschäftige.^^

@Moombas

Du liegts richtig. Ich wollte eine abgespeckte Update-Routine implementieren.
Wenn ich dies ebenfalls in delphi programmieren soll, sollte man dies gleich mit in das Hauptprogramm mit rein nehmen oder sollte ich ein weiteres Programm schreiben, welches ich aus meinem Hauptprogramm heraus starte?

Moombas 8. Jun 2020 12:20

AW: ShellExecute
 
Du kannst ja eine Datei nicht überschreiben, während diese noch läuft. Daher kommst du über eine separate Exe (oder ähnliches) nicht drum herum.
Aber eben diese würde ich trotzdem halt in Delphi schreiben, weil es für dich "Training" bedeutet und der Umfang dessen mit der Zeit steigen wird (je nach Programmumfang).

Es ist zudem einfacher, ein solches Programm mit wachsen zu lassen, als dieses komplett nachträglich mit einzubauen.

Kratos 8. Jun 2020 12:51

AW: ShellExecute
 
@Moombas

Alles klar, danke dir!
Das dachte ich mir schon.
Dann werde ich das so handhaben.

jaenicke 8. Jun 2020 12:55

AW: ShellExecute
 
Zitat:

Zitat von Moombas (Beitrag 1466736)
Du kannst ja eine Datei nicht überschreiben, während diese noch läuft. Daher kommst du über eine separate Exe (oder ähnliches) nicht drum herum.

Man kann aber die Datei normalerweise umbenennen während sie läuft. Man kann auch die gleiche Exe mit Parametern erneut starten und hat dann zwar mehrere Instanzen, aber immer noch nur eine Exe.

Moombas 8. Jun 2020 13:57

AW: ShellExecute
 
Ok, das mit den Parametern kenne/weiß ich. Das mit dem umbenennen war mir neu, weil mir das bisher noch nie als use-case aufgetreten ist.

Wenn ich @Jaenicke also richtig verstehe: Programm starten -> In diesem benennt die Update-Prozedur die eigene Exe um, kopiert die neue rein und startet diese und beendet die alte.
Die neue löscht dann wiederum die umbenannte exe und alles ist schick mit nur einer exe-Datei.

Hmm, hört sich interessant an.
Ich für meinen Teil bleibe aber wohl eher dabei das zu splitten.

himitsu 8. Jun 2020 14:54

AW: ShellExecute
 
Auf Netzlaufwerken, bzw. umgeleiteten Unterverzeichnisen zu Einem, da geht das mit dem Umbenennen eventuell oft nicht. (kommt drauf an, wie der Server am enderen Ende die Sperren behandelt)

Es gibt hier im Forum auch irgendwo eine Komponente, welche das mit dem Update handelt.
> Hier im Forum suchenUpdater irgendwas

Und ansonsten mehrere Threads, wo man den einen oder anderen hilfreichen Hinweis/Tipp bestimmt findet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.
Seite 2 von 4     12 34      

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