AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Update??

Ein Thema von monXii · begonnen am 13. Apr 2009 · letzter Beitrag vom 15. Apr 2009
Antwort Antwort
Seite 2 von 2     12   
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Programm Update??

  Alt 14. Apr 2009, 12:55
Hallo,

Korrektur: Eine Exe kann sich löschen.
Schau dir mal bei CreateFile das Flag FILE_FLAG_DELETE_ON_CLOSE an.

Öffnet man die Exe (SHARE) in sich selber mit diesem Flag,
löscht das BS die Datei, nachdem alle File-Handles geschlossen sind
(1. Handle - geöffnete Exe selber, 2, Handle - per CreateFile erzeugt).

Bei MS gab es dazu mal ein (c++) Quellcode.
ich finde ihn aber nicht mehr.

Trotzdem klappt das natürlich nur, wenn auf die Exe eh Schreibrecht ist,
also normalerweise nicht, wenn Sie im Programme-Verzeichnis liegt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#12

Re: Programm Update??

  Alt 14. Apr 2009, 13:04
Schaue Dir doch mal TMS-Webupdate an. Diese Komponente macht im Grunde das was Du möchtest.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Programm Update??

  Alt 14. Apr 2009, 14:32
Hi
ich habe hier mal einen kleinen Patch-Creator von ScherfgenSoftware hochgeladen (siehe Anhang).
Das Ding ist OpenSource ... ich denke ich verstoße gegen keine Urheberrechtsgesetze.
(Link zur Homepage: http://www.spieleprogrammierer.de/)

Wenn wer nicht mit diesem Upload einverstanden ist, soll sich bitte melden.
Ich werde ihn dann wieder entfernen - ich will keinen Ärger.
Aber sollte es eigentlich nicht geben.

Ich habe das Tool selbst noch nie ausprobiert - soll aber funzen.
Meine Idee wäre dann, dass dein Programm einen darauf hinweist, dass es eine neue Version gibt.
(Wenn der Patch am Server gefunden wurde)
Dann wird der Patch runter geladen, das Programm startet ihn und beendet sich dann.

MFG
FC


PS: Auf den Anhang achten!
Angehängte Dateien
Dateityp: zip patch_creator_136.zip (429,8 KB, 16x aufgerufen)
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Programm Update??

  Alt 14. Apr 2009, 15:53
Zitat von mkinzler:
Eine Exe kann sich halt nicht selber löschen, eine Batch schon
Ich habe ja oben geschrieben wie es sehr einfach geht...

Die Exe benennt sich selbst um, die neue Exe wird so genannt wie die Exe vorher hieß und die neue Exe wird mit einem Parameter gestartet, der ihr sagt, dass sie die alte Version löschen soll. Fertig.
Damit hast du im Grunde das selbe gemacht wie mit der Batchdatei...

Das Problem sind eben die benötigten Rechte, weshalb die oben beschriebene umständlichere Vorgehensweise für echte Programme, die nicht nur für den USB-Stick sind, die einzige echte Alternative ist, wenn man keinen echten Updater benutzen will.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Programm Update??

  Alt 14. Apr 2009, 18:03
Also mit dem Patch-Maker, den ich dir da geschickt habe, sollte es eigentlich keine Probleme geben
Ich werde das morgen selbst mal probieren

Ich sag dann bescheid ob es den gewünschten Effekt hat

MFG
FC
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Programm Update??

  Alt 14. Apr 2009, 18:29
Zitat von FabianClassen:
Also mit dem Patch-Maker, den ich dir da geschickt habe, sollte es eigentlich keine Probleme geben
Ich werde das morgen selbst mal probieren
Vergiss nicht das unter Vista oder als eingeschränkter Benutzer auszuprobieren, wenn das Programm unter c:\programme installiert ist...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Programm Update??

  Alt 14. Apr 2009, 18:33
Ich hab kein Vista ... du
Wenn ja kann ich ja das Programm, was ich zum Testen mache, kurz uploaden und du versuchst es auszuführen.
Ok?
Das wäre nett.

Mich interessiert es nämlich auch, ob das klappt.

MFG
FC
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Programm Update??

  Alt 14. Apr 2009, 20:48
Zitat von FabianClassen:
Ich hab kein Vista ... du
Deshalb habe ich ja geschrieben "oder als eingeschränkter Benutzer". Wenn man das unter XP macht, hat man den gleichen Effekt.
Und das ist ja auch normal, nur in der Standardinstallation ist man Administrator, und dementsprechend anfällig für Viren. In Firmen ist man das normalerweise sowieso und solange ich noch XP auf dem PC hatte, war ich auch als eingeschränkter Benutzer unterwegs.

Ich habe XP zum Testen sowohl auf einem Testrechner als auch virtuell installiert (normal nutze ich ausschließlich Vista). Dafür gibt es Vista und XP kostenlos von Microsoft zum Download:
http://www.microsoft.com/downloads/d...displaylang=en
Dieses Image kannst du dann in Virtual PC, das es ebenfalls kostenlos gibt, starten. Auch VirtualBox sollte gehen.

Zitat von FabianClassen:
Wenn ja kann ich ja das Programm, was ich zum Testen mache, kurz uploaden und du versuchst es auszuführen.
Ok?
Kann ich auch machen, aber du kannst es wie gesagt auch selbst testen, auch wenn du Vista bisher nicht hast.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Programm Update??

  Alt 15. Apr 2009, 11:59
Hi
ich habe ja meinen Lösungsweg beschrieben und habe ihn auch heute getestet.
Habe hier einfach mal ein kleines Versuchsprotokol angelegt.

Test meiner Variante:

Vorbereitung: Ich habe 2 Programme geschrieben. Beide Programme haben einen Button, der bei einem Klick, eine MessageBox mit der Versionsnummer ausgibt - entweder Version 1 oder 2. Das erste Programm hat außerdem noch einen Button mit der Caption "Update".
Bei einem Klick auf diesen Button wird via ShellExecute der Patch gestartet.

Den Patch habe ich mit dem Wizard, den ich gestern hochgeladen habe, erstellt.

Ich habe nun im Verzeichniss "C:/Programme" einen Ordner namens "Test" erstellt.
In diesem Ordner habe ich nun den Patch und das erste - das Grundprogramm - mit den 2 Button kopiert.

Durchführung:

Anschließend habe ich erst auf einem eingeschränkten Benutzerkonto einmal das Programm und den Patch in dem Verzeichniss "Test" und auf dem Desktop ausgeführt.
Danach das selbe mit einem Benutzerkonto mit allen Rechten.

Ergebniss:

In dem eingeschränkten Benutzerkonto hat der Patchvorgang nur auf dem Desktop geklappt.
Mit Adminrechten hatte ich jedoch kein Problem - alles hat wie erwartet einwandfrei funktioniert

MFG
FC


PS: im anhang befindet sich die Grundanwendung und der Patch
Angehängte Dateien
Dateityp: zip test_185.zip (201,1 KB, 7x aufgerufen)
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
glotzer

Registriert seit: 15. Apr 2009
30 Beiträge
 
#20

Re: Programm Update??

  Alt 15. Apr 2009, 17:51
Delphi-Quellcode:
procedure download_neue_Version;
var
fs: TFileStream;
temp : String;
begin
  temp := Main_Form.idHTTP1.Get('http:\\glotzer.gl.funpic.de/BreakIt/check_version.php?Version='+Version);
  if temp <> 'then
  begin
      if MessageDlg('Eine neue Version von BreakIt ist verfügbar, soll diese jetzt heruntergeladen werden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
          showMessage('Neue Version wird nach einem Klick auf OK heruntergeladen, dies kann einen Moment dauern.');
          fs := TFilestream.Create(ExtractFilePath(Application.ExeName)+'Neue_Version.zip', fmcreate);
          Main_Form.IdHTTP1.Get('http:\\glotzer.gl.funpic.de/BreakIt/Version.php', fs);
          fs.free;
          showMessage('Neue Version liegt dort: '+ExtractFilePath(Application.ExeName)+'Neue_Version.zip');
          showMessage('Das Programm wird jetzt beendet, bitte starten sie die neue Version.');
          halt;
  end;
end;
so habs ich in meiner BreakIt Version 1.3 gelöst. die procedure wird in FormCreat aufgerufen.
Thema in dem Forum
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:31 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