Spiele Launcher /Downloader erstellen, wie ? , Anleitung ?

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Ich schätze ich werd es dann als archive laden und dann entpacken. Wie mache ich das den ? Alles was ich sso finde ist für c aber nicht für vb

    und das funktioniert nicht so richtig

    VB.NET-Quellcode

    1. Dim ZipToUnpack As String = "test.zip"
    2. Dim TargetDir As String = "test"
    3. Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir)
    4. Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack)
    5. AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress
    6. Dim e As ZipEntry
    7. ' here, we extract every entry, but we could extract
    8. ' based on entry name, size, date, etc.
    9. For Each e In zip1
    10. e.Extract(TargetDir, ExtractExistingFileAction.OverwriteSilently)
    11. Next
    12. End Using

    erwieder schrieb:

    und das funktioniert nicht so richtig


    Dann wäre es doch eine tolle Idee auch mal zu sagen, was genau das Problem mit dem Code ist.

    erwieder schrieb:

    Alles was ich sso finde ist für c aber nicht für vb


    Weil ich das nicht glauben konnte, habe ich mal nur bei Google nach NET zip and unzip gesucht. Genau wie erwartet wurden mir passende Sachen vorgeschlagen. Wie fast immer bei mir, ein Link zu learn.microsoft.com direkt an erster Stelle(obwohl ich Browser Cookies immer beim schliessen des Webbrowser lösche, mir Google also keine optimierten Ergebnisse liefert). Such mal dort weiter, lies die Infos, dann findest du heraus wie man das macht. Nur einen Code von irgendwo hierhin kopieren, motiviert mich nicht dir Copy&Paste fertigen Code zu geben. (Hab sogar mehrere Quellen mit genau diesen Code gefunden, den du hier gezeigt hast, hab nach dem Code gesucht um zu schauen, ob du den evtl. selbst getippt hast, ja auch Code-Schnipsel finden Suchmaschinen)

    Wäre auch nett, wenn du mal die Fragen die dir @siycah gestellt hat beantwortest. Danach wäre ich evtl. bereit dir den Link den ich fand hier zu poste, wobei du den selbst ganz ganz leicht finden kannst. Ansonsten bin ich erstmal raus aus dem Thema hier.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „DTF“ ()

    Den Code habe ich vonn Github. Da muss ich aber zb.

    C-Quellcode

    1. System.IDisposable
    verweisen, was aber in der form anwwendung nicht geht. bzw. es steht in der liste nicht mit bei.

    und wennn ich manuel

    Quellcode

    1. Imports System.IDisposable
    schreibe zeigt er mir den fehler BC30467 an.

    was du meinst (zb. an erster stelle) ist warrscheinlich learn.microsoft.com/de-de/dotn…ttodirectory?view=net-8.0

    aber da geht es ja schon los mit

    C-Quellcode

    1. public static void
    und das funktioniert nicht. (BC30235 / BC30247 ...)

    wie gesagt, das meiste was ich finde ist mit C# aber nicht VB (vielleicht nutze ich auch google faalsch)

    @siycah

    Die Anwendung muss ja nicht in alle Ordner Schauen. Er soll ja nur aus dem einen die datenn laden. (Gut, ist jetzt halt nur 1 archive dann)

    Die Datein die ich auf den Server hochlade und Speichere, sind mit einem Zertifikat/Security Key ausgestattet. Diesen Code muss ich vor dem Hochladen auf dem Server Speichern, ansonsten ist ein Upload nicht möglich. (Sollte die datei verändert werden, ändert sich auch der Key und dann ist die datei nicht mehr aufrufbar)
    Sprich, dann müsste ich ja viren direkt schon mit hochladen

    Spoiler anzeigen
    Bevor fragen kommen: wie genau das funktioniert kann ich nicht sagen. (wurde mir mal erklärt, aber....)
    Ich habe einen Laptop wo ein Bekanter (mitlerweile leider verstorben) verschiedene sachen eingerichtet hatt. (Ich lade auch nur über den Laptop sachen auf den Server)
    Da ist einn Programm daruf wo ich die entsprechenden Datein reinkopie, auf start drücke und dann den Key bekomme.


    Bezüglich DirectoryListing (wenn ich es noch brauche) könnte ich zb. eine index.html/php erstellen. ggf. mit .htac sichern.

    Im nomalfall kann aber keiner auf nicht freigegebene Ordner hin, da der zugriff nur local erlaubt ist.

    Sprich als bsp. seitexy.de/datein/downloads/

    der ordner downloads kann nur local aufgerufen werden, also vom server selbst. Sprich wenn zb. ein windows drauf ist, per remote und dann über localhost/datein/downnloads.

    Alle anderen IP's (auser die localhost) sind für den Zugriff gespert.


    Der Steam-Client prüft nicht auf Viren! Valve ist keine Cybersecurityfirma.

    Das ist schon richtig, war auch eher mit gemeint das geprüft wird ob es ein Original und Gekauftes Spiel (kein gecracktes) ist. Zumal mann zum Spielen auch die SteamID brauch.



    ps: Sollten mal Zeichen zuviel oder zu wenig sein, nicht wundern die Tasstaturr spinnt mal wieder. (G910 krankheit)

    erwieder schrieb:

    und das funktioniert nicht. (BC30235 / BC30247 ...)


    C# und VB sind sich sogar so ähnlich(vonner Syntax mal abgesehen) dass man C# Code zu VB-Code übersetzen lassen kann(auch umgekehrt). Kannst ja bei Google mal nach C# VB Converter suchen, als Tip für die Zukunft.

    Und jetzt kommt der burner für dich, gucke mal im Anhang, dort gibt es einen knopp, da kann man die Sprache umstellen.
    Bilder
    • Unbenannt.jpg

      49,95 kB, 850×276, 13 mal angesehen
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „DTF“ ()

    Uff. Das wird hier ja mal wieder was...

    erwieder schrieb:

    verweisen, was aber in der form anwwendung nicht geht. bzw. es steht in der liste nicht mit bei.

    IDisposable ist ein Interface und kein Namespace... Davon erbt deine Klasse und dann musst du Dispose() implementieren.
    Siehe hier: learn.microsoft.com/en-us/dotn….idisposable?view=net-8.0

    erwieder schrieb:

    schreibe zeigt er mir den fehler BC30467 an.

    S.o.
    Du Importierst Namespaces und keine einzelnen Klassen. (Ja, ja ich weiß Import/using static usw.).

    erwieder schrieb:

    und das funktioniert nicht. (BC30235 / BC30247 ...)

    Natürlich funktioniert das nicht, weil das eine andere Sprache ist.
    public static void Main(string[] args) ist der Einstiegspunkt für eine C#-Anwendung. VB wäre Public Shared Sub Main(string() args).

    Verstehe mich bitte nicht falsch, aber ich glaube du musst nochmal ein paar Grundlagen auffrischen.

    erwieder schrieb:

    wie gesagt, das meiste was ich finde ist mit C# aber nicht VB (vielleicht nutze ich auch google faalsch)


    ???
    Erster Treffer.

    erwieder schrieb:

    Die Anwendung muss ja nicht in alle Ordner Schauen. Er soll ja nur aus dem einen die datenn laden. (Gut, ist jetzt halt nur 1 archive dann)

    Und damit legst du die Dateien offen... Das ist alles schön und gut, dass du weißt, wo die Dateien und Ordner sind und dass darüber niemand was zu suchen hat, aber genau so kann ich Anfragen manipulieren, damit dein Server mit sogar ​/etc/passwd ausgibt...

    erwieder schrieb:

    Bevor fragen kommen: wie genau das funktioniert kann ich nicht sagen. (wurde mir mal erklärt, aber....)
    Ich habe einen Laptop wo ein Bekanter (mitlerweile leider verstorben) verschiedene sachen eingerichtet hatt. (Ich lade auch nur über den Laptop sachen auf den Server)
    Da ist einn Programm daruf wo ich die entsprechenden Datein reinkopie, auf start drücke und dann den Key bekomme.

    Verwende niemals Sachen, wo du nicht verstehst, was die machen, in einer PROD-Umgebung. Das ist der Schlüssel zum Disaster.

    erwieder schrieb:

    Bezüglich DirectoryListing (wenn ich es noch brauche) könnte ich zb. eine index.html/php erstellen. ggf. mit .htac sichern.

    Und da wüsste ich gerne, wie du dich davor schützt. Nicht weil ich dir damit auf den Kiker gehen will, sondern weil ich weiß, dass es nicht immer trivial ist, einen Server davor zu schützen. Das ist schließlich mein Business (mitunter).

    erwieder schrieb:

    Im nomalfall kann aber keiner auf nicht freigegebene Ordner hin, da der zugriff nur local erlaubt ist.

    Wir reden nicht vom Normallfall. Wir reden davon, dass es jeden Tag abertausende Angriffe auf öffentliche Server gibt, die oft genug diesen Botnetzen zum Opfer fallen und dann ebenfalls gekapert werden.

    Ich habe jedentag hunderte IPs, die ich wegen schadhafter Anfragen blockiere und melde.

    erwieder schrieb:

    Sprich als bsp. seitexy.de/datein/downloads/

    erwieder schrieb:

    der ordner downloads kann nur local aufgerufen werden, also vom server selbst. Sprich wenn zb. ein windows drauf ist, per remote und dann über localhost/datein/downnloads.

    Was hat Windows damit zu tun?

    Wenn der Ordner nur lokal erreichbar ist, dann kannst du davon auch nichts herunterladen. Du musst ja irgendwie die Dateien bereitstellen, sonst kannst du sie nicht herunterladen. Und genau darum geht's mir gerade. Ich will nur verhindern, dass einer Bockmist baut und dann groß Kack ist.

    Und dann fehlt mir noch: Hast du überhaupt die Erlaubnis, diese Dateien zu hosten?
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Betreffend erlaubnis sind die mods open source und dürfen verendet/verändert werden. Von daher sollte es kein probblem sein.

    Mit dem Button zum umschalten ist garnicht mal so schlecht ^^ hab ich nicht gewusst.

    Momentan habe ich es jetzt so

    VB.NET-Quellcode

    1. Private _webClient As WebClient
    2. Public Sub New()
    3. InitializeComponent()
    4. _webClient = New WebClient()
    5. End Sub
    6. Private Sub Down_Click(sender As Object, e As EventArgs) Handles Down.Click
    7. _webClient.DownloadFileAsync(New System.Uri("https://xyz.de/daten/test.zip"), My.Application.Info.DirectoryPath & "\test.zip")
    8. AddHandler _webClient.DownloadProgressChanged, AddressOf DownloadProgress
    9. MsgBox("Download Fertig. Begine mit entpacken")
    10. Dim unZipDir As DirectoryInfo = New DirectoryInfo("entpackt")
    11. If Not unZipDir.Exists Then
    12. unZipDir.Create()
    13. End If
    14. ZipFile.ExtractToDirectory("test.zip", unZipDir.FullName)
    15. End Sub


    Wenn ich jetzt auf den Button Down drücke :

    Es kommt die Meldung : Download fertig. beginne mmit entpacken.
    Dann fängt die progresbar aan zu lufen und lädt es runter.

    Wenn ich bei der Meldung auf ok drücke kommt aber Fehler:
    Unbehanndelte Ausnahme in der Anwendung. klicke auf weiter um den fehler zu ignorierenn .......

    in den Details steht :

    System.NotImplementedException: Die Methode oder der Vorgang ist nicht implementiert.
    bei TestLauncher.Form1.Down_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    Die Datei hat er aber geladen
    Du erinnerst mich starkt an jemanden............
    Du bist nicht zufällig T.M.?

    Erst das Zip Entpacken wenn es komplett runtergeladen ist. Du startest den Download, abonnierst das Progresschanged Event und zeigst eine MessageBox das er fertig ist, obwohl er an dieser Stelle zu der Zeit mit sehr hoher Wahrscheinlichkeit nicht fertig ist. Woher weist du das er schon fertig ist? Das läuft Ansyncron.

    Solltest du einen Server gemietet haben und selbst administrieren, kündige den, so schnell es geht. Mehr als einen gemanagten Webspace solltest du auf keinen Fall nutzen. Ich wollte zwar vorher schon mehr mit PHP empfehlen(auch damit hätte man so einiges machen können), aber gut das ich das nicht gemacht hab. Wer weis was du da angestellt hättest. Ich bereue es schon FTP, SFTP und FTPS erwähnt zu haben ;( . Was würde da rauskommen? Ich mag es mir garnicht vorstellen.

    Aber ich danke dir auch, du hast mich beleehrt. So schnell werde ich bei solchen Sachen nicht mehr helfen, ich mach mich ja in gewisser Weise mit schuldig.

    Lass das einfach sein, bis du es kannst und weis was du tust.

    erwieder schrieb:

    Die Datei hat er aber geladen


    Kannst du sie selbst von Hand entpacken? Wird wohl eher nur ein Bruchteil von der Datei da sein. Ein Spiel hat heutzutage meist mehrere Gigabytes, das dauert länger als ein Event zu abonnieren und eine Messagebox wegzuklicken.

    erwieder schrieb:

    Betreffend erlaubnis sind die mods open source und dürfen verendet/verändert werden. Von daher sollte es kein probblem sein.


    Open Source heist nicht automatisch das du machen kannst was du willst. Die UnrealEngine 5 ist auch OpenSource, trotdzdem gibt es ein Copyright das zu beachten ist.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „DTF“ ()

    T.M ? wenn du meinen Namen meinst, mein vorname ist Max. ^^


    Lass das einfach sein, bis du es kannst und weis was du tust.


    Dafür frage ich ja nach. ANhand bsp. oder lössungen mit kleiner Info, lerne ich es halt besser. Ich habe vor 1 Jahr das hier erstellt, aber nie wirklich weiter gemacht. Jetzt wollte ich es halt mal anfangen/weitermachen.

    Ich weiß zwar nicht was das mit Server Administration zu tuhen hat, aber....
    Ich habe seit Jahren mehrere dedizierte Server am Laufen und es gab noch nie wirklich Probleme. (Auch wenn es nicht hier hinn gehört, ich hatte selbst 11 Jahre lang einen ALT und nie Probleme bezüglich config/sicherheit. Auch habe ich momentan noch eine kleine Community am laufen, ohne Probleme)
    Zusätlich habe ich 4 Spiele server Onnline. Bezüglich Server administration kenne ich mich win wenig aus.

    Ich weiß glaubig wodrauf du hinaus möchtest. Aber für mich ist das hier was anderes/neues und umständlicher als php (oder auch die DB (pdo) )

    Das Test file ist ja anur ca. 120mb groß, dass lädt er schnell und auch komplett. (kann ich manuel enntpacken)

    Open Source heist nicht automatisch das du machen kannst was du willst. Die UnrealEngine 5 ist auch OpenSource, trotdzdem gibt es ein Copyright das zu beachten ist.

    Ich weiß, aber bei den Mods ssteht es ja bei das man es ändern/verbreiten darf. (Ausser bei den Bezahl mods)

    erwieder schrieb:

    Momentan habe ich es jetzt so

    Du hast es falsch.
    Du startest den Download zwar asynchron, allerdings fehlt der Wiedereintrittspunkt. Dein Download läuft zwar asynchron, aber du wartest nicht darauf, sondern machst direkt weiter.

    Brainfuck-Quellcode

    1. UI Thread Download
    2. | Starte Download
    3. |------------------------------------------------------------------------------->|
    4. | MessageBox |
    5. | Absturz |
    6. |
    7. | Fertig und kann nicht zurück


    Du solltest schon zumindest versuchen zu verstehen, was du da tust.
    Den WebClient sollte man allerdings nicht mehr verwenden, stattdessen den HttpClient.

    erwieder schrieb:

    in den Details steht :

    Da steht "NotImplementedException". Du hast da irgendwas nicht implementiert.

    erwieder schrieb:

    Bezüglich Server administration kenne ich mich win wenig aus.

    Einen Server einrichten und Updates installieren ist nicht schwer, aber dir fehlt augenscheinlich das Verständnis für die tieferen Ebenen und die Serversicherheit. Zumindest macht das hier so den Eindruck.

    erwieder schrieb:

    Aber für mich ist das hier was anderes/neues und umständlicher als php (oder auch die DB (pdo) )


    Wenn du PHP kannst, dann wäre C# eher die bessere Wahl, wegen der ähnlicheren Syntax zu PHP.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)