Informationen aus dem Internet in Programm einlesen?



  • Hi,
    wollte mal wissen, ob es möglich ist, ein Programm wie den LiveUpdate von Norton Anti Virus in C++ zu schreiben.
    Ich wollte es nämlich so machen. Soll ein Programm zur Koordinierung von Projekten sein. Ich habe zb. ein bisschen Webspace bei Arcor.de und möchte da jede woche neu eine datei hochstellen, die Informationen für Besitzer des Programms geben soll. Das Programm soll auf die Datei die ich im Webspace habe zugreifen und diese herunterladen. Wenn sie heruntergeladen ist soll das Programm die Datei öffnen und einen Passwortcheck ausführen, um die richtigen Informationen zu öffnen, das Passwort des Grafikers öffnet die Infos für den Grafiker.... Dann sollen diese Informationen angezeigt werden.

    Ist das rein theoretisch machbar? Oder muss ich da HTML für können oderso?
    Kenne mich in Richtung Internet kaum aus und bräuchte deshalb etwas hilfe.

    MFG Haldir



  • Geht alles theoretisch. Ich kann dir eine Funktion geben mit der du eine Datei von einem Server im Internet runterladen kannst:

    // Open Internet session.
      FILE* pFile;
      string fileStream;
      DWORD dwRead=1;
      char *tmpBuffer = NULL;
      char szURL[255] = "http://www.arcor.de/datei.dat";
      HINTERNET hFile;
    
      pFile = fopen("update.dat", "wb");
    
      HINTERNET hSession = ::InternetOpen("File Downloader",
                                         PRE_CONFIG_INTERNET_ACCESS,
                                         NULL, 
                                         NULL,
                                         NULL) ;
    
      tmpBuffer = new char[1025];
      tmpBuffer[1024] = '\0'; // terminate the buffer with a null character; important for concatenating to fileStream string
      fileStream.reserve(2048*1024);
    
      hFile = InternetOpenUrl(hSession, szURL, NULL, 0, INTERNET_FLAG_RELOAD, 0);
    
      while(dwRead)
      {
        // Download 1024 Bytes
        InternetReadFile(hFile, tmpBuffer, 1024, &dwRead);
        if(dwRead)
          fileStream += tmpBuffer; // add downloaded data to the stream
      }
    
      // Close the handle to the file.
      ::InternetCloseHandle(hFile);
    
      delete[] tmpBuffer;
    
      fwrite(fileStream.data(), 1, fileStream.size(), pFile);
      fclose(pFile);
    
      ::InternetCloseHandle(hSession);
    

    Ich hab sie jetzt schnell ein wenig geändert. Wenn was nicht funktioniert, dann musst du mich informieren...
    Diese Funktion kann man bestimmt noch um einiges verbessern. Es gibt noch eine andere Variante eine Datei aus dem Internet zu laden, die hat bei mir aber bei einer bestimmten URL nicht funktioniert...



  • Das ist aber kein Standard-C++.

    MfG Max



  • Hi,
    cool, Danke, werde ich mir mal anschauen wenn ich da nicht durchsteige sage ich nochmal.



  • Was heisst kein Standart C++? Kann ich die nicht benutzen? Muss ich eigentlich etwas bestimmtes dafür includen?



  • Was heisst kein stan** C++? Kann ich die nicht benutzen? Muss ich eigentlich etwas bestimmtes dafür includen?**

    Ja, musst du. Ich hoffe aber, du bist schlau genug und findest das selber heraus. Wenn nicht wär's auch keine Schande 😉
    Der Code setzt voraus, dass du mit der WinAPI für Windows programmieren kannst.

    Ein Moderator sollte diesen Thread in den WinAPI-Bereich verschieben...



  • Hab nichts gefunden, iostream und noch was?



  • Aziz schrieb:

    Ja, musst du. Ich hoffe aber, du bist schlau genug und findest das selber heraus. Wenn nicht wär's auch keine Schande 😉
    Der Code setzt voraus, dass du mit der WinAPI für Windows programmieren kannst.

    Haldir schrieb:

    Hab nichts gefunden, iostream und noch was?

    Unter welchem Betriebssystem programmierst du? Jetzt häng mal ein .h dahinter... 🙄



  • Habe Win98.
    Verstehe diesen ganzen Unterschied von mit .h und ohne oder mit "..." oder mit <...> nicht, was ist da wofür gut?



  • Afaik sind die neueren Header die ohne .h - dort sind dann soviel ich weiß die ganzen Sachen in dn Namespace std gepackt.
    Zu den Angaben mit "" bzw. <> meine ich, dass es so ist, dass mit "" zuerst im Projektverzeichnis gesucht wird, während mit <> ind den bei include-path angegebenen Verzeichnissen gesucht wird 🙂



  • Pass aber bloß auf wem du das programm anschließend gibst. Erkönnte in wenigen se3kunden via Sniff an dein Admin-PW beim Webspace kommen 😉

    MgG, TH



  • hallo ich bins wieder... nun ersthabe ioch verst. was du willst. Solange du nix uploadest ist keine Gefahr da. Also ich nehme alles zurück...

    Sorry für zu schnelles posten ohne denken eben...



  • Ich denke du scheinst noch ein n00b zu sein.
    Für dich ist URLmon wie geschaffen. Google mal danach.
    Damit kannst du Dateien jeglicher art mit einer einzigen ezile programmcode zum erwünhschten lokal-Pfad downloaden. (dann kannste ja einlesen und anzeigen / ausführen etc...)

    Have fun....



  • Aha, Danke, werde mal gucken.


Anmelden zum Antworten