Webseitenquelltext herunterladen

Alles rund um die Programmierung mit Qt
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Webseitenquelltext herunterladen

Beitrag von Paddre »

Moinmoin.

Ich habe mir folgendes zur Aufgabe gesetzt. ich möchte einen täglich erscheinenden Web-Comic jeden tag als Desktophintergrund einrichten.

mein plan dazu: Seitenquelltext der internetseite auf das Vorkommen einer bestimmten URL überprüfen, Das Bild welches sich hinter der URL versteckt herunterladen und an einen bestimmten festgelegten Ort speichern.

Mein Problem:
Wie komme ich mit C++ an den Quelltext einer Seite ran?
Nachdem ich an der Konfrontation mit Sockets usw leicht gescheitert bin wollte ich mal schauen ob Qt so etwas kann.
QWebView scheint mir interessant, jedoch habe ich nirgends ein Beispiel zur Verwendung gefunden.

Gibt es eine Möglichkeit über Qt an den Quelltext einer Seite ranzukommen? Oder gibt es eine enifachere Möglichkeit mein Problem zu lösen?
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

QHtml
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Meinst du damit Quicktime HTML? oder gibt es eine Qt-Klasse die so heißt?

Der Assistant findet nichts unter QHTML und google ist da zwar sehr ergiebig aber kein ergebnis hat was mit dem zu tun was ich suche.

Bitte eine etwas auführlichere Antwort ;)
AlphaWolf
Beiträge: 15
Registriert: 4. Oktober 2007 20:13

Beitrag von AlphaWolf »

Er meint wohl QHttp.
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Puh brauch mal eben Hilfe bei ner ganz Grundlegenden Sache (muss dafür ja nicht extra n Thread öffnen)

Wie erstelle ich in VS2008 ein projekt, in dem ich auf Qt-Klassen zugreifen kann ohne eine GUI zu haben?

Einfaches include reicht ja nicht
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

qmake -project
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Also einfach ein normales leeres VS-Projekt erstellen und im Projektordner qmake -project aufrufen... kk mach ich morgen heute is erstmal feierabend :-P
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Oh ja, tut mir Leid. QHttp ist richtig :)
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Habs jetzt nicht mit Qt-Klassen gelöst sondern mit der Win-API-Methode URLDownloadToFile ... klappt wonnerbäst, bis auf dass ich nicht weiß wie ich den Desktop aktualisieren kann nachdem ich das Desktophintergrundbild überschrieben hab
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Sehr gut besten dank :)
Problem ist, dass man auf den Desktop klicken muss damit das nach beenden des programms auch aktualisiert wird (wenn man folgende zeilen hinzufügt:

Code: Alles auswählen

keybd_event(VK_F5, 0, 0, 0);
keybd_event(VK_F5, 0, KEYEVENTF_KEYUP, 0);
Hat einer ne Ahnung wie ich den Focus auf den Desktop lege?
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Hast du das genau so:

Code: Alles auswählen

SystemParametersInfo(SPI_SETDESKWALLPAPER,0,bmp,SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);
gemacht?
Ich kann mir kaum vorstellen, dass man noch weitere Aktualisierungen benötigt, um es sofort zu haben.

Kannst dein Programmquelltext übrigends mal anfügen wenn du lustig bist. Sowas würde mich auch interessieren :)
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Ursprünglich hatte ich das neue Desktopbild aus dem Internet geladen, dieses in einen bestimmten ordner gepackt und einen bestimmten namen gegeben. Wenn ich es am nächsten Tag starte dann wird diese Datei wieder mit eienr gleichnamigen Datei überschrieben und nach ktualisierung ist das neue Bild auf dem Desktop zu sehen.

Mit folgendem Code und anderem Pfad als den des eingestellten Desktopbildes:

Code: Alles auswählen

SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"D:\\comic.png",SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);
(die Datei liegt auch wirklich dann in dem Ordner) wird der Hintergrund anscheinend nicht verändert (habe es mit einem Testbild versucht), weder so noch nach einem refresh des Desktops.

Die Funktion scheint also nicht ganz hinzuhauen.

Hier nochmal mein Code:

Code: Alles auswählen

URLDownloadToFile(NULL, temp, L"D:\\comic.png", NULL, NULL);
	SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"D:\\comic.png",SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);

keybd_event(VK_F5, 0, 0, 0);
keybd_event(VK_F5, 0, KEYEVENTF_KEYUP, 0);
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Das Problem ist, dass du eine BMP-Datei brauchen wirst. Du müsstest dieses also Konvertieren.
Versuch einmal es vorher manuell in eine bmp Datei zu wandeln.
Mit Qt sollte dir das dannach auch automatisch gelingen.
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Beitrag von Paddre »

Ich mach mich mal auf die Suche.

Is halt ärgerlich weil die andere Methode funktioniert ja auch mit pngs...einziges problem ist halt nur dass ich nicht immer F5 am Anfang drücken will wenn ich den PC hochfahr :-D
Antworten