Seite 2 von 3

Verfasst: 11.08.2007 02:25
von ts-soft
Forge hat geschrieben: Ja, dachte ich anfangs auch, aber welches gadget soll ich dafür opfern? :mrgreen:
Gar keins, die 3 in der Mitte weiter zusammen, links und rechts 2 cm weg,
oben und unten 4 cm weg, und schon ist alles gut, ich kann beim updaten
weiter fernsehen, chatten und proggen (alles gleichzeitig, bin ich so gewohnt :mrgreen: =

Verfasst: 11.08.2007 02:44
von X0r
Dann muss ich den Updater wohl noch für Multitasking-fähige Menschen optimieren. :mrgreen:

Verfasst: 14.08.2007 15:05
von KingKong
Hallo Forge,
dein Updater gefällt mir sehr gut. :D
Leider habe ich ein Projekt, wo mit dem Update auch neue Datenfiles hinzukommen können (da hast du für den Uninstaller ev. ein zusätzliches DLL angekündigt) aber was noch wichtiger ist:
Es müssen manchmal auch div. Datenfiles gelöscht werden !
Hier sollte der Updater auch die Möglichkeit bieten, Files und ev. zur Abrundung auch ganze Verzeichnisse zu löschen.
Aber erst einmal für einfache Projekte schon sehr hilfreich. :allright:

Gruß
KingKong

Verfasst: 14.08.2007 17:06
von X0r
Ok, diese Funktionen werden in der nächsten Version verfügbar sein.

Edit:


Bevor ich das heute einbaue, hätte ich noch eine Frage an dich. Wie wäre es für dich am einfachsten? Etwa eine extra Datei, die der Updater dann parst und jenachdem Dateien löscht, Verzeichnisse löscht etc.?
Z.B so:

Code: Alles auswählen

#DF           //Delete file
Help.chm  
#DD          // Delete dir
Temp
#CD         // Create dir


Verfasst: 16.08.2007 16:38
von X0r
FSU 1.2 Update
Nun kann man mit FSU nicht nur Dateien runterladen, sondern auch Dateien löschen, Ordner erstellen und Ordner löschen.

Dies tut FSU über die UpdateFileList.

Beispiel:

Code: Alles auswählen

//UP
ifsetupde.exe

wcst.exe
Datas\
wcst.exe
%Windir%
//End

//UP
ifsetupde.exe
Datas/
//End

//DD
Rofl
//End

//CD
Temp
//End

Zwischen
//UP
und
//End
werden die Dateien runtergeladen. Die 1. Zeile ist immer der Name der Datei im Updateordner, die 2. immer der Ordner, in den die Datei runtergeladen werden soll.

Zwischen
//DD
und
//End
werden die Ordner gelöscht.

Zwischen
//CD
und
//End
werden die Ordner erstellt.

Zwischen
//DF
und
//End
werden die Dateien gelöscht.


Folgende Parameter können bei allen Methoden angegeben werden:
%Sysdir% (System32-Ordner)
%Windir% (Windows-Ordner)
%Tempdir% (Temp-Ordner)


Download: http://www.forgesoft.net/Products/FSU/FSU.zip

Verfasst: 16.08.2007 17:23
von X0r
FSU 1.3 Update
Nun kann man den FSU eine DLL-Funktion aufrufen lassen.

Code: Alles auswählen

[Update]
Product = Product
Version = 1.0
ProductVersion_File = http://www.forgesoft.net/Products/Test/currentversion.ini
UpdateFileList = http://www.forgesoft.net/Products/Test/update_files.ini
UpdateDir = http://www.forgesoft.net/Products/Test/Updates/
ProgramFile = ifsetupde.exe
Language = English
DLL = 
Bei "DLL = " muss der Name der DLL angegeben werden.

FSU ruft die Funktion "Update" auf. Sie muss folgende 8 Parameter unterstützen:
1. Parameter : Name des Produkts
2. Parameter : Aktuelle Version des Produkts(bzw. alte Version)
3. Parameter : Neue Version des Produkts
4. Parameter : URL der Versiondatei
5. Parameter : URL der UpdateFileList
6. Parameter : URL des Updateordners
7. Parameter : Datei, die nach dem Update gestartet werden soll.
8. Parameter : Sprache, die während des Updates benutzt wird.

Beispiel einer solchen DLL in PureBasic:

Code: Alles auswählen

ProcedureDLL Update(Product.s,OldVersion.s,NewVersion.s,VersionFile.s,FileList.s,UpdateDir.s,Program.s,Language.s)

//Dies und das machen

  If Language="German"
    MessageRequester(Product+" Update",Product+" wurde erfolgreich aktualisiert! ")
  Else
    MessageRequester(Product+" Update",Product+" was updated successfully! ")
  EndIf

EndProcedure
Download: http://www.forgesoft.net/Products/FSU/FSU.zip

So, alle Wünsche wurden erfüllt. :)
Was wünschen sich die FSU-User noch?

Verfasst: 16.08.2007 19:35
von KingKong
Super :allright:
Das ging ja schnell.
Ist ja schon mal alles drin, was ich für meine Projekte momentan bräuchte.

Meinst du aber nicht, daß es besser gewesen wäre, statt den 2 Zeilen
für Filenamen und Verzeichnis dies (wie in meiner privaten PN gezeigt) in einer Zeile unterzubringen.
Dein Parser müßte dann die Zeile nur nach den gültigen Konventionen auflösen
Partition\Verzeichnis..Unterverzeichnis\File.
Wäre dann auch besser zu Bearbeiten und lesbar.
Auch wäre es sicherlich sinnvoller gewesen, die Kenner wie in deinem ersten Vorschlag bei #DD zu belassen anstatt //DD zu nehmen.
Mit "//" hätte man Hinweistexte signalisieren können.
Auch hätte man jedesmal das //End sparen können, denn ein nächster Kenner z.B. #CD zeigt ja, daß eine andere Funktion eingeleitet wird.

Ist nur meine Meinung, eventuell melden sich auch andere Nutzer die das anders sehen oder noch bessere Vorschläge machen können.

Gruß
KingKong

Verfasst: 16.08.2007 19:43
von X0r
Ich wollte eigentlich auch # nehmen. Auch wollte ich es ohne "..End" machen, jedoch gibt es dann eventuell ein Problem beim Download von Dateien. Eine Dateie könnte auch mit # beginnen und dann würde der parser denken, dass es hier schon zu ende ist. Und // kann man in Dateinamen nicht benutzen.
Hast du vielleicht ne Idee, wie mans doch mit # geschickt hinbekommt?
//XY & //End nerven mich auch.
Dein Parser müßte dann die Zeile nur nach den gültigen Konventionen auflösen
Partition\Verzeichnis..Unterverzeichnis\File.
Wollte ich auch erst so machen, aber wäre es dann nicht eventuell für den einen oder anderen unlogisch? Ich meine, würde man nicht denken "Woher will der Updater denn wissen, welche Datei er runterladen soll".

Verfasst: 16.08.2007 20:15
von KingKong
X0r hat geschrieben:Ich wollte eigentlich auch # nehmen. Auch wollte ich es ohne "..End" machen, jedoch gibt es dann eventuell ein Problem beim Download von Dateien. Eine Dateie könnte auch mit # beginnen und dann würde der parser denken, dass es hier schon zu ende ist. Und // kann man in Dateinamen nicht benutzen.
Werde aber mal sehen, was sich da tun lässt. Eventuell finde ich ja doch eine Lösung.
Dein Parser müßte dann die Zeile nur nach den gültigen Konventionen auflösen
Partition\Verzeichnis..Unterverzeichnis\File.
Wollte ich auch erst so machen, aber wäre es dann nicht eventuell für den einen oder anderen unlogisch? Ich meine, würde man nicht denken "Woher will der Updater denn wissen, welche Datei er runterladen soll".
1.)
Man kann ja die Kenner noch erweitern
z.B. "#DD//" oder "#DD//FSU#", damit kann dein Parser auch zwischen
Anweisung und Hinweistexte unterscheiden.
Du darfst natürlich mit dem Parser nicht nur nach # suchen, sondern nach dem ganzen Kenner der auch alleinig in der Zeile stehen muß.
2.)
Nun, man beschreibt dem Anwender daß alle angegeben Files sich in einem Verzeichnis auf seinem Server befinden muß und daß die Pfadangaben sich immer auf das Zielverzeichnis beziehen.
Natürlich gehört dann auch mal eine erweiterte Beschreibung dazu
worin man die Wirkungsweise der diversen Angaben erfährt.
Ähnlich, wie ich es in der privaten PN an dich aufgelistet hatte.

Gruß
KingKong

Verfasst: 16.08.2007 20:25
von X0r
>Du darfst natürlich mit dem Parser nicht nur nach # suchen, sondern nach dem ganzen Kenner der auch alleinig in der Zeile stehen muß.

Stimmt schon, aber...
...ich zeig dir einfach den Code:

Code: Alles auswählen

;...

While Not Eof(0)
  line.s=ReadString(0)

  If Left(line,4)="//UP"
    
    Repeat
      line=ReadString(0)
      ;...
      
    Until Left(line,5)="//End" Or Eof(0)

  EndIf
  
Wend

;...
Dann müsste ich bei Until Left(line,5)="//End" immer die ganzen anderen Befehle dazuschreiben. Bin etwas faul, werds aber trotzdem so machen. :mrgreen: