AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi update eures eigenen Programms: vorgehensweise

update eures eigenen Programms: vorgehensweise

Ein Thema von Ajin · begonnen am 24. Apr 2007 · letzter Beitrag vom 17. Jan 2008
Antwort Antwort
Seite 2 von 3     12 3   
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: update eures eigenen Programms: vorgehensweise

  Alt 24. Apr 2007, 14:42
Zitat von Ajin:
Die Batch-Datei ist aber kleiner und genauso wirksam.
Nein, ist sie nicht. Es gibt einen wichtigen Unterschied: Ein Dienst hat immer Schreibrechte für das Programmverzeichnis, ein normaler Benutzer nicht. Arbeitest du nicht als Administrator, musst du die Batchdatei explizit als Administrator starten, um sie auszuführen. Bei einem Dienst kann jeder Benutzer ein Update durchführen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#12

Re: update eures eigenen Programms: vorgehensweise

  Alt 24. Apr 2007, 14:47
[quote="Chewie"][quote="Schubi"]
Zitat von messie:
Zitat von Ajin:
Die Batch-Datei ist aber kleiner und genauso wirksam.
Nein, ist sie nicht. Es gibt einen wichtigen Unterschied: Ein Dienst hat immer Schreibrechte für das Programmverzeichnis, ein normaler Benutzer nicht. Arbeitest du nicht als Administrator, musst du die Batchdatei explizit als Administrator starten, um sie auszuführen. Bei einem Dienst kann jeder Benutzer ein Update durchführen.
Das wird wahrscheinlich den Grund haben, dass ein normaler Benutzer nun mal nicht zu schreiben HAT.
Solche Sicherheitsmechanismen sollte man nicht einfach so umgehen.
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: update eures eigenen Programms: vorgehensweise

  Alt 24. Apr 2007, 16:18
Zitat von Schubi:
Das wird wahrscheinlich den Grund haben, dass ein normaler Benutzer nun mal nicht zu schreiben HAT.
Richtig. Und ein "normales" Programm sollte nicht von einem Administrator gestartet werden müssen. Eine Updatefunktion aus dem Programm heraus per Batchdatei erfordert aber Administratorrechte. Wozu dann, könnte man sich fragen.


Man muss halt einen Kompromiss schließen zwischen Sicherheit und Komfort. Und bei Programmen, die häufigen Updates bedürfen (z.B. Virenscanner) ziehe ich die Variante mit dem Dienst vor.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#14

Re: update eures eigenen Programms: vorgehensweise

  Alt 30. Apr 2007, 12:45
Mochen!

Delphi-Quellcode:
batchname := Pfad_Lokal+'Update.bat';

FileSetAttr(Pfad_Lokal+'TTS_Starter.exe', 0);
batchfile := TStringList.Create;
with batchfile do
begin
  try
    Add('@Echo off');
    Add(':Label1');
    Add('del "'+Pfad_Lokal+File1+'"'); //Löscht die alte Datei
    Add('copy "' + Pfad_Netz + File1 + '" "' + Pfad_Lokal + File1 + '"'); //Kopiert die Neue
    Add('if not Exist "' + Pfad_Lokal + File1 + '" goto Label1'); //Prüft, ob sie vorhanden ist
    Add(Pfad_Lokal + File1); //Startet sie
    Add('del ' + batchname); //und löscht die BAT
    SaveToFile(batchname);
    ChDir(ExtractFilePath(Application.ExeName));
    WinExec(PChar(batchname), SW_HIDE); //BAT starten
  finally
    batchfile.Free;
  end;
  Halt; //Programm beenden
end;
Kann man dem batch file eine Pause geben bevor es das alte File löscht? Ich bekomm immer den Fehler: keinen Zugriff weil die Anwendung noch läuft und daher nicht gelöscht werden kann.
WAIT und SLEEP scheint es nicht zu geben im Batch code.
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#15

Re: update eures eigenen Programms: vorgehensweise

  Alt 30. Apr 2007, 13:37
Du kannst sowas wie
dir c:\ /s >> NULL machen. Das dauert ne kleine Weile.
(Gibt alle Verzeichnisse und Dateien auf Laufwerk C aus. Allerdings wird wegen ">> NULL" nichts angezeigt)

Ansonsten so:
Delphi-Quellcode:
Add(':Label1');
Add('del "'+Pfad_Lokal+File1+'"'); //Löscht die alte Datei
Add('if Exist "' + Pfad_Lokal + File1 + '" goto Label1'); //Prüft, ob sie
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#16

Re: update eures eigenen Programms: vorgehensweise

  Alt 30. Apr 2007, 14:20
Nach einigem herumprobieren hab ich ein ähnliches System wie Schubi entworfen. Nun funktionert das prima! Schubis Lösung funktioniert ebenfalls einwandfrei

Vielen Dank !
  Mit Zitat antworten Zitat
Benutzerbild von dor557
dor557

Registriert seit: 24. Okt 2004
Ort: Walldorf
197 Beiträge
 
Delphi 10.1 Berlin Starter
 
#17

Re: update eures eigenen Programms: vorgehensweise

  Alt 11. Jan 2008, 03:32
So nun habe ich "Meine eigene" lösung zusammengetragen und Hier Gepostet.

Gruss Sascha
Sascha Nickel
Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#18

Re: update eures eigenen Programms: vorgehensweise

  Alt 11. Jan 2008, 09:02
Zitat von Ajin:
Mochen!

Delphi-Quellcode:
batchname := Pfad_Lokal+'Update.bat';

FileSetAttr(Pfad_Lokal+'TTS_Starter.exe', 0);
batchfile := TStringList.Create;
with batchfile do
begin
  try
    Add('@Echo off');
    Add(':Label1');
    Add('del "'+Pfad_Lokal+File1+'"'); //Löscht die alte Datei
    Add('copy "' + Pfad_Netz + File1 + '" "' + Pfad_Lokal + File1 + '"'); //Kopiert die Neue
    Add('if not Exist "' + Pfad_Lokal + File1 + '" goto Label1'); //Prüft, ob sie vorhanden ist
    Add(Pfad_Lokal + File1); //Startet sie
    Add('del ' + batchname); //und löscht die BAT
    SaveToFile(batchname);
    ChDir(ExtractFilePath(Application.ExeName));
    WinExec(PChar(batchname), SW_HIDE); //BAT starten
  finally
    batchfile.Free;
  end;
  Halt; //Programm beenden
end;
Kann man dem batch file eine Pause geben bevor es das alte File löscht? Ich bekomm immer den Fehler: keinen Zugriff weil die Anwendung noch läuft und daher nicht gelöscht werden kann.
WAIT und SLEEP scheint es nicht zu geben im Batch code.
ping -t
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#19

Re: update eures eigenen Programms: vorgehensweise

  Alt 11. Jan 2008, 09:44
Zitat von manfred_h:
schau Dir doch diese Komponente an:
http://www.tp-soft.de/index.php?T=rema&P=produkte
Oder genauer, besser hier

Da mein Programm ja mittlerweilen Freeware ist, sind ja damit keine Kosten verbunden. Ich fahre alle meine Updates darüber. Und die Liste zeigt dir, dass du nicht nur Updates damit fahren kannst, sondern sogar noch viel mehr... Was du brauchst, ist:
  • Ein MySQL 4.1 Server
  • PHP Anbindung
  • Webserver
  • FTP Server
Und das Programm sowie die TInternetUpdate Komponente, die es aber auch auf meiner Seite zum Runterladen gibt und auch im REMA Paket enthalten ist.

Rema regelt die Versionssteueren, setzt also Version verfügbar, und lädt das Setup dann auch autmatisch via FTP auf den Server hoch. Zu jeder Version schreibst du TODO- und WHATSNEW-Listen.

Die TInternetUpdate Komponente prüft, ob eine neue Version verfügbar ist (über http, nicht ftp), und lädt diese gegebenfalls runter... Alles in eigenem Thread ausgelagert und mit 2 Zeilen Code erledigt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20

Re: update eures eigenen Programms: vorgehensweise

  Alt 11. Jan 2008, 09:52
Zitat von Schubi:
Bat-Dateien sinf recht praktisch für sowas!
Die kannst du z.B. direkt von deiner Homepage downloaden und lokal ausführen.

Delphi-Quellcode:
batchname := Pfad_Lokal+'Update.bat';

FileSetAttr(Pfad_Lokal+'TTS_Starter.exe', 0);
batchfile := TStringList.Create;
with batchfile do
begin
  try
    Add('@Echo off');
    Add(':Label1');
    Add('del "'+Pfad_Lokal+File1+'"'); //Löscht die alte Datei
    Add('copy "' + Pfad_Netz + File1 + '" "' + Pfad_Lokal + File1 + '"'); //Kopiert die Neue
    Add('if not Exist "' + Pfad_Lokal + File1 + '" goto Label1'); //Prüft, ob sie vorhanden ist
    Add(Pfad_Lokal + File1); //Startet sie
    Add('del ' + batchname); //und löscht die BAT
    SaveToFile(batchname);
    ChDir(ExtractFilePath(Application.ExeName));
    WinExec(PChar(batchname), SW_HIDE); //BAT starten
  finally
    batchfile.Free;
  end;
  Halt; //Programm beenden
end;
Was muss in Pfad_Netz stehen, damit das funktioniert? Ich habe es gerade in der Konsole versucht:
Code:
C:\Dokumente und Einstellungen\mp>copy "http://www.michael-puff.de/Developer/Delphi/Programme/ADSReader.zip" d:\adsreader.zip
[url]http://www.michael-puff.de/Developer/Delphi/Programme/ADSReader.zip[/url]
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
        0 Datei(en) kopiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:18 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