Server - Client Update

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Ich gehe mal davon aus :) das dir hier keiner so ein System proggen wird....

Vielleicht findet irgendwann mal irgendjemand diesen Thread und gibt dir ein bereits vorhandenes System an die Hand, aber bis dahin viel Glück....

Bis dato kannst du dich ja ein wenig mehr mit den Grundlagen von Netzwerk und FTP/HTTP beschäftigen, denn mit IF und Else kommst du nich weit....

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Schick einfach deine aktuelle Programmversion an ein PHP-Script auf deinem Webspace (hier im Forum gibts einige Beispieler, wie man mit der Network-Library eigene HTTP-Requests strickt), z.B. so:
http://dein.webspace.de/update.php?version=1.42

In deinem PHP-Script wertest du jetzt $_GET['version'] aus, und reagierst entsprechend darauf. Sollte doch zu packen sein. :wink:
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

@ Scarabol: Unterlasse so ne scheiße wie deine Stupid Posts. -.-
Das bringt hier niemanden der Anfänger ist weiter!

@ hardfalcon: Danke, werde mir das mal ansehen, hast du evtl Tutorials oder Themen wo man das nachsehen kann?
Ich habe bereits ein Script, ich arbeite mich darein aber es ist noch sehr unübersichtlich.
Ich will nicht das mir jemand etwas codet sondern mir mit Befehlen hilft sodass ich diese Googlen könnte.
Aber check() gibt es nicht, denn ich will das er das checkt welche aktuelle Version gerade benutzt wird und welche aktuelle verfügbar ist.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Hier hatte ich auch mal sowas ohne API gebastelt.
Keine Ahnung ob das überhaupt noch lauffähig ist, aber evtl. hilfts dir ja.

Irgendwo hatte ich das auch mal völlig überarbeitet, weil es teilweise schon etwas daneben ist, aber ich glaube das dümpelt als unvollendete auf meiner Platte rum.

[Edit]
Hab die letzte gefundene Version nach nem schnellen Test mal dort aktualisiert.
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

Das ist sehr schön gemacht. :)
Zwei Fragen und eine weitere Funktion bzw. Testversion für euch.

Frage 1:
Wie bekommst du die aktuelle Version ins StringGadget?

Frage 2:
Woher entnimmt die Anwendung den Inhalt im StringGadget?

Neue Version meiner Anwendung:
http://www.synergy-gaming.de/uploads/fi ... sflash.exe
(Ist ein selbstentpackendes Archiv mit WinRAR 3.62 erstellt)

Mein Updater nutzt eine Smooth Progressbaranzeige wobei man den Download minimieren kann, aktuelle kb/kb sehen kann, kb/s angezeigt bekommt und jederzeit abbrechen kann.
Beim letzteren wird die zu downloadete File vom Zielort gelöscht, sofern nicht komplett.
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

Hab ich irgendetwas falsch gemacht? O.o
Kann mir niemand sagen wie ich ausser über einem PHP Script, die aktuelle Version und das aktuelle Update herausfinden kann?

Mein Programm ist Bsp. 0.0.5 und das neueste Update 0.0.6, wie erfährt die Anwendung das ein neues Update vorhanden ist?
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Falsch hast du vielleicht gemacht, dass du zu faul bist meinen geposteten Quelltext näher zu betrachten, dort steht nämlich auch die von mir benutzte Lösung drin.
Ohne php o.ä. Zeugs.

Ich sehe es aber nicht ein, dir die Vorgehensweise genauer zu erklären, solange ich feststellen muss, dass du das Ding einfach nur kopierst, ausführst und dann Fragen stellst, anstatt vielleicht erst mal versuchst selbst dahinter zu kommen.

Wenigstens die Kommentare hättest du ja lesen können :roll:

Wir zeigen nur Türen, durchgehen musst du alleine...
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

Sry? Hab deine Comments gelesen, steig da aber als blutiger Anfänger nothing durch!

1) Bin ich kein Kopierer
2) Will ich verstehen was ich selber erschaffe (Auch wenn es nur Bruchstücke sind)
3) Habe ich da nicht wirklich rauslesen können wie du das machst

Alleine das hier:

Structure _C4U_UPDATE_STRUCTURE
*Version
*URL
*PathToSaveFileTo
*SFV
*FileName
*Link
*LastTimeChecked.LONG
*P._C4U_SPECIAL_
Status.l
Mode.l
InitOK.b
ThreadID.l
MainWindowID.l
WindowID.l
TimeOUT.l
LastError.l
Phase.l
EndStructure

Ich gehe davon aus das Strukturen sowas wie Array's in PHP sind, liege ich da falsch?

Dann das hier:

WinID = OpenWindow(#PB_Any, 295, 243, 320, 245, "Update Found", #PB_Window_SystemMenu | #PB_Window_ScreenCentered, _C4U_\MainWindowID)
If WinID And CreateGadgetList(WindowID(WinID))
TextGadget(#PB_Any, 10, 10, 60, 20, "Version:")
Version = StringGadget(#PB_Any, 80, 10, 220, 20, "", #PB_String_ReadOnly)
Info = EditorGadget(#PB_Any, 80, 40, 220, 130, #PB_Editor_ReadOnly)
TextGadget(#PB_Any, 10, 40, 60, 20, "Infos:")
Download = ProgressBarGadget(#PB_Any, 10, 180, 290, 20, 0, 100, #PB_ProgressBar_Smooth)
Start = ButtonGadget(#PB_Any, 5, 220, 80 ,20 , "Start Update")
Link = ButtonGadget(#PB_Any, 120, 220, 80 ,20, "-Link-")
Cancel = ButtonGadget(#PB_Any, 235 , 220, 80 ,20, "Cancel")

Seit wann kann man denn Fenster mit "WinID = OpenWindow..." öffnen?
Sind das Variablen wie in PHP?


Wäre echt schön wenn mir das nicht jemand schreiben könnte sondern versuchen mir zu erklären denn egal was ich suche um deinen Code besser zu verstehen, die Hilfe in PB bringt einen Scheiß. :(
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

Beitrag von Riacon »

Radiate hat geschrieben: Seit wann kann man denn Fenster mit "WinID = OpenWindow..." öffnen?
Sind das Variablen wie in PHP?

..., die Hilfe in PB bringt einen Scheiß. :(

das versteh sogar ich. und ich hab echt keine ahnung.

zitat pb hilfe:

Syntax

Ergebnis = OpenWindow(#Window, x, y, InnereBreite, InnereHoehe, Titel$ [, Flags [, ParentWindowID]])
Beschreibung

Öffnet ein neues Fenster entsprechend den übergegebenen Parametern. Wenn #PB_Any als '#Window' Parameter verwendet wird, dann wird die Nummer des neuen Fensters als 'Ergebnis' zurückgegeben. Ist 'Ergebnis' gleich 0, konnte das Fenster nicht geöffnet werden.
...
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Hmm... o.k., da sind ja doch sehr viel mehr Wissenslücken als ich angenommen hatte.

Ich kann dir leider keinen Einsteigerkurs anbieten, als Lehrer tauge ich nicht.

Worauf ich eigentlich hinauswollte war, z.B. der Kommentar ganz oben:

Code: Alles auswählen

Usage:
;| Create a File like this Example:
;| http://h3x0r.ath.cx/Sonstiges/WinRar.txt
Dann kann man sich ja z.B. mal die besagte Datei anschauen:
http://h3x0r.ath.cx/Sonstiges/WinRar.txt

Und bekommt dann evtl. eine Idee, wie so etwas überhaupt funktionieren kann (nicht muss, da gibts noch andere Möglichkeiten).
Wie die technische Umsetzung dann abläuft, bleibt eh dir überlassen mit Win-API sind das z.B. nur nen paar Zeilen und sehr viel weniger aufwändig als meine Non-Api-Variante (die dann aber theoretisch auch unter Linux funktionieren sollte).
Antworten