aktuelle URL vom Explorer/Mozilla abfragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

aktuelle URL vom Explorer/Mozilla abfragen

Beitrag von Xaby »

Ich würde gern folgendes machen:

- Um Kindern zum Beispiel den Zugriff auf einige Seite zu verwären, würde ich gern vom InternetExplorer bzw. einem Browser herausfinden, auf welcher Seite er sich aktuell gerade befindet und wenn man einen Link anklickt, sollte dieser an mein Programm übermittelt werden und wenn der Link einen URL-Teil enthält, der initiiert ist, dann wird der Explorer geschlossen bzw. wieder auf die vorherige Seite gesetzt.

Irgendwie könnte man auch den Verlauf anzapfen, aber wenn den jemand auf NULL gestellt hat, dann hilft es auch nicht viel.

Seit gestern weiß ich, dass es PureDispHelper gibt. (Dank ts-soft.)

Welche Möglichkeiten der Kommunikation hab ich zwischen Browser und meinem Programm?

Vorweg, WebGadget ist nicht die Lösung. Denn es öffnet einfach so auch PopUps und genau das will ich ja verhindern.


Mich würde auch im Allgemeinen mal interessieren, ob man herausfinden kann, welches Programm gerade welche Datei öffnet.
Zum Beispiel welches Word-Dokument gerade beschrieben wird. Oder welches Bild betrachtet, welche Musik gehört.

Einige Dinge werde doch auch in dem komischen:
DOKUMENTE-Ordner abgelegt.

Aber der ist mir zu schwammig. Denn der scheint völlig willkürlich Dateien dort als Verknüpfung abzulegen.

Wie macht es Antivir? Kann man den Festplattenzugriff abfragen und so ermitteln, auf welche Datei aktuell zugegriffen wird?

Mich interessiert eigentlich, was mein Kind so am Rechner treibt.
Auf welcher Seite es gerade war und welche Ordner es anlegt.
Welche Dateiein es kopiert, löscht, anlegt, bearbeitet.

Keine Komplette überwachung. Keine Spionage über GlobalKey-Abfragen.
Würde es aber gern selbst programmieren, um meine Fähigkeiten in PB zu erweitern und genau zu wissen, was das Programm macht und was nicht. Denn einige von diesen Überwachungstools senden auch Daten per Email weg und da weiß man ja nie, ob da nicht mal eine Mail an wen anders raus geht.

Ich denke nur an Stargates kleines Spiel, bei mir schlug nichts Alarm.
Und mit einem Webgadget kann ich ja auch jede URL aufrufen, ohne, dass sich meine FireWall meldet.

Will da auch nicht wirklich was kaufen.

Man könnte doch die bekannten Programme überwachen
- Writer
- Calc
- Paint
- Editor
- Browser
- WinAmp

Und die müssen doch auch an Windows senden, dass sie was öffnen wollen oder liege ich da falsch?

Man umgeht doch nicht den Kern und greift direkt auf die Festplatte mit Maschinencode zu.

Eigentlich bräuchte man fast nur eine Routine:

- Wer-Lädt-gerade was

URLs werden ja auch irgendwie geladen.

Man könnte ja auch irgendwie auf Netzwerk-Protokoll-Ebene was abfragen und die Input und Outputsachen abfragen. Aber tut das Not?

Es gibt sicherlich was ganz einfaches, aber ich komm mal wieder nicht drauf.

Jemand eine Idee? Dank euch, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Fürs Fernsteuern des IE gibt es im englischen Forum einige COM basierte Beispiele,
wobei das mit der PureDispHelper etwas weniger schreibarbeit sein sollte.
Einfach dort mal suchen.

Mit Mozilla wird das so nicht möglich sein, weil Mozilla auf XPCOM framework basiert,
was zwar auf den ersten Blick COM ähnelt, aber doch sehr verschieden ist.
Auserdem bietet es soweit ich weiß überhaupt keine Inter-Prozess kommunikation an so wie COM das tut.

Zum Thema Schreibzugriffe und Antivir etc. Das geht mit dem sog. API-Hooking.
(kannst du auch mal in den Foren suchen, da gibt es schon was dazu)
Im prinzip kann man das System dazu bringen für jeden CreateFile_() API
befehl die eigene Routine aufzurufen, da kann man dann sowas global überwachen.
Little John

Beitrag von Little John »

Hallo Xaby,

wenn Du Delphi (Object Pascal) verstehst, könnte Dir der Quelltext des Programms URLInject weiterhelfen:
URLInject is a Windows program to "inject" the URL (location), title and date of access into HTML documents user is saving from within a web browser. The task is performed automatically. All major web browsers are supported.
Gruß, Little John
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

@Little John
Schau dir mal meine Webseite an, da irgendwo bei Software gibt es einen Link zu FolkisA

Wieso sag ich dir das? FolkisA läuft auf einem 08286er und kommt mit einem gematen RAM < 512 KByte aus. Selbst eine VGA Grafikkarte mit 256 KByte ist ausreichend.

Geschrieben in 16 Bit Borland Pascal 7.0 :o

Werd mir deinen Code mal anschauen.

Dank dir. :allright:


@freak.

Joa. Dann mach ich mich mal auf die Suche nach den COMs.

Codearchive? Oder hier einen Thread, wo mal die wichtigsten Dinge zusammengefasst sind?

Api-Hooking, hört sich ein bisschen nach Hacken an :?
Aber eigentlich ist es genau das, wenn jemand CreateFile_()
oder OpenFile_() oder was es noch für Lese-Schreib-Zugriffe gibt benutzt, dann möchte ich darüber informiert werden! :mrgreen:
Kann ja nicht angehen, dass hier jeder macht, was er will, keiner was er soll, aber alle machen mit :o

@FireFox ... wie funktionieren dann PlugIns?
Kann ich auch mit PB sowas schreiben?
Dann braucht man nicht extra ein echtes Programm sondern es ist irgendwie gleich im Explorer und überwacht den oder so ...

:allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

API-Hooking ist salopp gesagt das Sub/Superclassen eines API-Befehls. Die Adresse, die das Programm für den Befehl aufruft wird manipuliert und zeigt zu einer Prozedur, die DU geschrieben hast. Um die Funktionalität zu gewährleisten, leitest du den Befehl zusätzlich an die Original-Adresse weiter.

OCX-Dateien sind afaik ActiveX-Objekte(sofern man das so nennen darf). Diese widerum sind eine "Erweiterung" von COM-Objekten (inwiefernd as ist, kann ich sleber noch nicht so nachvollziehen).
COM an sich ist das Component Object Model, und ist eine Art DLL, die aber ein Objekt darstellt. Man kann also in einer Prozedualen Sprache auch COM-Objekte nutzen, und damit eine gewisse Objektorientiertheit erreichen.
Über COM ist dann auch noch gewährleistet, dass es Windows-Unabhängig ist. Sofern der COM-Server (die OCX-Datei) die jeweiligen FUnktionen unterstützt, so istes auch möglich sie unter einem COM-fähigen OS auszuführen. (Klingt wie DLL- nur, dass diese eben Objektorientiert sind).

Ich hoffe, ich habe nicht zu viel Dünnschiss gequatscht ;)

Gr33tz,
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Little John

Beitrag von Little John »

Tafkadasom2k5 hat geschrieben:API-Hooking ist salopp gesagt das Sub/Superclassen eines API-Befehls. Die Adresse, die das Programm für den Befehl aufruft wird manipuliert und zeigt zu einer Prozedur, die DU geschrieben hast. Um die Funktionalität zu gewährleisten, leitest du den Befehl zusätzlich an die Original-Adresse weiter.
Das klingt (für mich) ähnlich wie das früher so beliebte "Verbiegen" von Interrupt-Zeigern. :D

Gruß, Little John
Antworten