Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.07.2014, 13:37

C# Kein Prozessstartevent??!

Hallo,

ich hätte da eine Frage bezüglich der Process - Klasse im .NET Framework.

ich möchte gerne, sobald sich der Anwender( ich :D) sich auf Google.de befindet, das ein Event aktiv wird, was mir dann eine MessageBox aufruft.

Nur als Test, wisst ihr wie man das implementiert bekommt, denn es gibt nur das Process Exited Event, aber dämmlicher Weise nicht das StartEvent
:(

Wäre sehr dankbar für Vorschläge :)


Mfg

JungleProgger

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

09.07.2014, 14:59

Und wie hilft dir dabei die Process-Klasse weiter?
Du könntest damit eine Instanz deines Lieblingsbrowsers starten, du kannst aber nicht überwachen, ob von außerhalb diese Anwendung gestartet wird.
Auch dürfte es nur sehr schwer möglich sein, herauszufinden, auf welcher Seite sich der Browser gerade befindet (es sei denn, die Browser beiten dafür eine entsprechende Schnittstelle).

Ansonsten wäre es wahrscheinlich noch möglich, benutzerdefinierte Skripte im Browser auszuführen. Diese könnten prüfen, auf welcher Seite man sich befindet und dann bestimmte Dinge machen. Problem dabei ist aber, dass die ausführbaren Aktionen sich auf die jeweilige Seite beschränken. (Man kann zwar noch versuchen, irgendwelche Umwege zu gehen, um noch ein paar mehr Dinge zu machen, aber das dürfte insgesamt verdammt umständlich sein oder für Sicherheitsrisiken sorgen könnte.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

09.07.2014, 15:46

Was möchtest du denn überhaupt machen? Was ist dein eigentliches Ziel? Auf mich wirkt das wie der falsche Ansatz.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

4

09.07.2014, 15:51

Ich bin zwar nicht all zu oft in C# aber weißt du eigentlich nicht von selbst, wann der Prozess startet? Du musst ihn bei der Process-Klasse doch mittels Start() ausführen. Sende das Event (wenn du es wirklich als solches brauchen solltest) doch einfach selbst.

5

09.07.2014, 15:54

Nein, ich möchte wenn ich außerhalb des Programms, ganz normal, firefox öffne und Google.de eingebe, dass dann ein Event ausgelöst wird, welches mir ein Meldungsfenster öffnet.

6

09.07.2014, 16:13

In der Registry gibt es einen Schlüssel namens "Image File Execution Options". Damit kann man für ein Programm ein anderes Programm starten lassen. Google mal danach. Du kannst dort zb firefox eintragen und stattdessen wird dein programm gestartet, das dann wiederum firefox starten könnte.
Um zu gucken, ob google.com oder so augerufen wird, kannst du du dir die "hosts" datei im windows ordner angucken (googeln) die war damals da, um domainnamen in ip adressen umsetzt. Du könntest dort die localhost ip (127.0.0.1) eintragen, dein programm am http-port lauschen lassen und gucken, ob ein request an google.com kommt. Dann machst deine MsgBox auf, entfernst den hosts-eintrag und schickst den request an den eigentlichen server weiter.
Das sind zwar alles miese Tricks, aber es könnte funktionieren :D

Oder du könntest auch die url-adressen-leisten-textbox oben im browser auslesen, und gucken, ob die gesuchte adresse drinsteht.

7

09.07.2014, 16:14

Selbstverständlich gibt es ein Process Start Event:

http://www.fluxbytes.com/csharp/how-to-k…ng-events-in-c/

aber dadurch kannst du natürlich nicht die seite abfangen.
In dem Fall müsstest du versuchen, dich irgendwie in das Firefox event einzuklinken und dann zugriff auf die Firefox API zu bekommen.
Letzteres wird nicht ohne ein extra code im Browser geschehen können - sonst wäre Firefox ja kein sicherer Browser mehr, wenn er durch dritte Anwendungen manipuliert werden könnte ;)
Und wenn du schon code im Firefox startest, kannst du auch einfach ein Plugin für FF schreiben, was dann den Seitenaufruf abfängt.

Wenn du soetwas wie einen Webfilter erstellen willst, musst du eher woanders anfangen. Dann musst du die HTTP Requests des Systems abfangen, wenn du einen Proxy verhindern willst. Wie das genau geht, da übersteigst du jedoch jetzt meinem Latein.
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

09.07.2014, 16:37

Er kann auch den Netzwerk-Verkehr überwachen und schauen, wenn Requests an Google gehen.
Ich stelle mir aber ernsthaft die Frage was der Zweck des Ganzen sein soll.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Alexej

Frischling

Beiträge: 23

Wohnort: OWL

  • Private Nachricht senden

9

10.07.2014, 15:55

Vielleicht hilft dir das hier: https://developer.mozilla.org/en-US/docs…IBrowserHistory
und das http://stackoverflow.com/questions/14594…using-awesomium

Der Ansatz:
(1) Plugin für Firefox schreiben:
(1.1) lastPageVisited aus der history auslesen
(1.2) ein selbstdefiniertes, globales JS-Event mit dieser Information auslösen
(2) In deinem Service:
(2.1) das globale JS-Event abfangen
(2.2) Information auswerten.

Ich habe das allerdings nicht ausprobiert und kann daher keine Garantie geben, dass es so funktioniert ;-)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

10.07.2014, 19:28

Heißt aber leider, dass jeder Zielrechner dieses Plugin installieren muss und das auch nur bei gewissen Firefox-Versionen geht. Da wäre es doch schlauer den Netzwerk-Verkehr zu überwachen.
Aber wie gesagt, ohne dass er uns mal erzählt, wofür er das überhaupt tun will, sollte er lieber gar nichts davon machen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige