eine dynamische webiste auf updates prüfen

fishguts

Erfahrenes Mitglied
ich hab mit php ein website erstelt, die einen ordner auf meiner festplatte ausliest und die dateien in diesem ordner auflistet
das auslesen passiert imer dann, wenn ein user auf die website zugreift
jetzt will ich mit einem programm aber prüfen, ob sich zu letzten besuch was auf der website verändert hat
wie könnt ich das anstellen?
die sprache tut erstmal nichts zur sache, auch wenn's später in C# realisiert werden soll
mir gehts erstmal um das prinzip :)
wie kann ich mit einem programm prüfen, ob sich eine webiste verändert hat
wäre es vielleicht möglich, die website von programm intern aufrufen zu lassen (sie soll nicht angeziegt werden) und die grösse der seite in ein log-file zu schreiben?
beim nächsten aufruf des programms könnte man dann die aktuelle grösse, mit der aus dem log-file vergleichen
wäre das theoretisch möglich?
wie würdet ihr das problem lösen?
 
Zufälligerweise arbeite ich grade an einem ähnlichen Programm. Darum kann ich dir auch sagen, dass dies ziemlich leicht zu realisieren ist, wenn man mit der Windows Internet Library arbeitet.

Im Prinzip brauchst du nur folgende Funktionen, um eine bestimmte Datei via HTTP aus dem Internet zu laden:

InternetOpen()
InternetOpenUrl()
InternetReadFile()

Du kannst ihre Definitionen wie immer in der MSDN Library nachschlagen.

Wenn du Hilfe bei der Implementation brauchst, einfach nachfragen.


reima
 
danke :)
kennst du vielleich auch eine funktion, die automatisch den ie aufruft und eine festgelegte url anzeigt?
 
Nichts leichter als das: Man startet lediglich mit spawn einen neuen Prozess und gibt als Argument die aufzurufende Seite mit:
Code:
spawnlp(_P_NOWAIT, "iexplore.exe", "iexplore.exe", "http://www.test.de", NULL);
spawnlp: l = mit Argumenten; p = PATH mit einbeziehen
_P_NOWAIT: nicht auf die Terminierung des Prozesses warten (_P_WAIT wäre das Gegenteil)
"iexplore.exe": Kommandozeile des aufzurufenden Prozesses
"iexplore.exe": erstes Argument
"http://www.test.de": zweites Argument
NULL: Ende der Argumentliste

Einzubinden ist die process.h.


reima
 
ok, danke für die schnelle hilfe!!
ein problem hab ich allerdings noch
wenn ich über using process.h; process.h einbinde will bekomm ich nen fehler vom c#-compiler, dass dieser namespace nicht existiert
woran kann das noch liegen?
 
Hoppla... hab ganz überlesen, dass du das in C# realisieren willst. Bin jetzt irgendwie auf C++ gewesen. Wie das bei C# funktioniert, weiß ich leider nicht :(


reima
 
Ja in C# gibts keine Header Dateien.
(mhhh naja zumindest nicht in der art wie C++! sondern ähnlich wie die Packete in Java in namespaces des Frameworks)

Aber ich kann dir ein Tutorial empfehlen
schau mal folgende Namespaces an:

* System.Net
* System.IO
* System.Text

WebRequest wrq = WebRequest.Create("http://www.meineUrl.de");
WebResponse wrp = wrq.GetResponse();

StreamReader strread = new StreamReader(wrp.GetResponseStream(), Encoding.ASCII);
while (-1 != sr.Peek())
{
// tu was mit => strread.ReadLine();
}
 
nichts für ungut, reima ;)
@holyfly
danke, aber wie kann ich jetzt aus der konsole den ie starten und direkt eine website aufrufen?
 
weiss echt niemand, wie man aus der konsole den ie starten lassen könnte, um zu einer festgelgten seite zu surfen?
kann doch eigentlich nicht so schwer sein :rolleyes:
ich brauch das echt dringend...
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück