Updates und "Diebstahlschutz"

Von der Installation bis zur Auslieferung der Applikation

Moderator: Moderatoren

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Wolfgang,

gerade das möchte ich nicht, obwohl es insgesamt gesehen natürlich eleganter ist. Aber ich kann nie sagen, welche .dll auf dem Server aktualisiert wurden (das kann in loser Folge und komplett durcheinander gehen bei den ca. 10 .dll). Und ich weiß nie, wann der Benutzer das letzte Update gefahren hat, ob er also nur die letzte Änderung runterladen muß oder mehrere. Und für jede .dll mit Inno ein eigenes Update zu erstellen ist mir schlicht zu aufwändig.

Abgesehen davon funktioniert das mit LoadFromUrl() wirklich sehr gut. Auch für das Datumsproblem habe ich eine Lösung gefunden. Es gibt da in kernel32.dll ein SetFileTime(), damit kann man das Datum entsprechend setzen. Allerdings habe ich damit wiederum ein kleines Problem: Ich komm einfach nicht dahinter, wie der übergebene String mit Datum und Zeit aussehen muß. Egal wie ich das zusammenstelle, das wird immer als ungültig angesehen. Weiß da jemand Rat? Warum muß Günter gerade jetzt Urlaub machen 8)

Jan
Benutzeravatar
urbi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: So, 26. Mär 2006 18:47
Wohnort: 76185 Karlsruhe
Kontaktdaten:

Beitrag von urbi »

Hallo Jan,
ich hänge unmittelbar nach dem compilieren einen string an die EXE
an und lese ihn bei Programmstart aus

Code: Alles auswählen

PROCEDURE MAIN
SETFATTR("URBI.EXE",32)
HANDLE := FOPEN("URBI.exe",2)   // EXE im modus lesen/schreiben öffnen
FSEEK(handle,-12,2)
CONTROL := FREADSTR(handle,12)
IF !LEFT(control,4)=="####"   
   FSEEK(handle,0,2)
   control := "####"+Str(Year( Date() ), 4 )+"."+STRZERO(DOY(DATE()),3)+DTOC(DATE())
   FWRITE(handle,control)
ENDIF
FCLOSE(handle)
RETURN control
PROCEDURE APPSYS
RETURN NIL

das funktioniert bestimmt auch bei DLL`s

Gruss
Rainer
urbi
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
stelle Deine Updates doch in einer ZIP zur Verfügung - dann bleiben Datum und Uhrzeit erhalten!
Du musst dann halt nur noch ein "Controlfile" bereithalten, in dem die Namen der in der ZIP enthaltenen DLLs stehen, damit Du weißt, welche DLL-Dateien Du vor dem Entpacken umbenennen mußt!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Martin,

gleiches "Problem" wie beim Vorschlag von Wolfgang mit einem Inno-Update-File.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
wieso?
Du prüfst einfach nur die controlfiles - ist da was neueres bei, dann die entsprechenden ZIPs herunterladen, DLLs umbennen, ZIPs entpacken und gut ist.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten