Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo

Hat irgendjemand Ahnung von Windows Programmierung. Ich brauche dringend eure Hilfe.

Wenn ein Benutzer egal in welchem Programm(Word,PowerPoint ...) ein bestimmtest Wort eingibt soll ein Popup Fenster aufgehen.

Ich muss also irgendwie die Eingabe des Benutzer erkennen,oder?

Hat jemand Ahnung wie man das macht?

Sunflower

K.A. ob ich dein Problem richtig verstanden habe!!!

Ich verstehe das jetzt einfach mal so:

Du willst also Systemweit (alle laufenden Programme) alle

Eingaben mitbekommen und bei bestimmten Eingaben (Wörtern)

ein Popup anzeigen?

Wenn das dein Anliegen ist könnte dir evtl. SetWindowsHookEx

vom Typ WH_KEYBOARD helfen... Damit bekommst du zumindest

alle Tastenanschläge.

PS: Die Hookfunktion muss in ner DLL liegen wenn er systemweit greifen soll.

Gruß

Diablo999

Ja genau das hast du richtig verstanden. Aber ich weiss noch nicht mal wie ich anfangen soll. Bin gerade im ersten Lehrjahr und mein Chef gibt mir solch einen Auftrag. Ich kenn mich zwar mit objektorientierter Programmierung schon etwas aus. Aber wie soll ich denn anfangen???

Sunflower

Ohne dich zu kennen würde ich sagen das das von mir vorgeschlagene

Vorgehen nichts für jmd. im ersten Lehrjahr ist...

Bist du dir sicher das dein Chef genau das gefordert hat?

Falls du jedoch Lust hast viel zu lernen und viel Dokus zu wälzen kann

ich gerne nochn bisschen was dazu schreiben...

hmm... also ganz grundsätzlich:

mach n struktogramm

da brauchst wenigstens nix programmieren, aber du hast die lösung eigntlich schon da.

denn notfalls wird dir doch sicher der ein oder andere kollege mal nen "wink mit dem zaunpfahl" geben können.

ja das wars eignetlich, du machst n struktogramm dazu, lässt dir das signieren das es ok und auch das ist was gefordert ist.

sobald du die freigabe für dein struktogramm hast übersetzt du einfach das SG in C/C++ und naja, das sollte es im idealfall gewesen sein ;)

Ja, ich bin mir ganz sicher das mein Chef das verlangt. Wir hatten ja extra ein Meeting einberufen was dieses Programm machen soll. Das ist für irgendeine Firma in Amerika. Deshalb ist es auch sehr dringend da ich für das Programm nicht gerade sehr viel Zeit habe. In der Schule haben wir gerade mal mit Funktionen angefangen. Deshalb ist es auch etwas schwierig für mich. Ich benutze zurzeit das Programm Visual C++ 6. Wenn ich ein Projekt erstelle habe ich sehr viele Dateien. Die .cpp die header usw. Ich weiss auch überhaupt nicht wo ich was rein schreiben soll. Kennst du eine gute Seite wo das gut erklärt ist?

Ich habe auch schon sehr viel im Inernet gesucht, aber leider erfolglos :-(

Sunflower

Das ist ja das Problem Snowman. Ich bin die einzige die Programmieren kann. Außer mein Chef der kann ein bißchen VB aber das bringt mir nicht viel.

Sunflower

Naja wie Diablo999 bereits gesagt hat wird das mit deinem Kenntnisstand ein hartes Stück arbeit.

Auf jeden brauchst du dazu 2 Programme:

Einmal eine DLL die erstaml 3 Funktionen haben muss:

a) Den Kyboardhook im System anmelden

B) Die Funktion die vom System aufgerufen wird wenn eine Taste gedrückt wird

c) eine Funktion um den Hook wieder abzuschalten

und ein Programm welches die Funktion a) aus der Dll aufruft.

Dabei könnte dir folgendes Beispiel helfen:

http://www.codeproject.com/dll/keyboardhook.asp

äh wiebitte?

du hast keine ahnung wo der quellcode rein kommt?

also ich will dir das hier nich vorwerfen oder sagen das du dumm seist, das mich bitte niemand falsch versteht ;)

aber wenn du doch so wenig ahnung von dem programm hast dann ist diese aufgabe zu hoch!

Hmm.. vllt. gibts ja irgendwie ne richtig einfache möglichkeit das zu lösen, die wäre mir aber nicht bekannt, daher sollen lieber erstmal n paar leut ihrer meinung dazu posten.

Hallo Snowman

Also ich weiss was in den Header kommt und in das Hauptprogramm.

Aber dort sind auch noch einige andere Dateien. Ich habe keine Ahnung für was die da sind und ob ich die alle brauche

Schau dir mal den Post von Guybrush Threepwood an...

@Guybrush Threepwood

Genau das gkleiche wollte ich auch grad schreiben *arg*

...Ich habe keine Ahnung für was die da sind und ob ich die alle brauche

ich auch nicht, ich lösch meistens alles was ich nich kenne und reg mich drüber auf das er nichmal cout kennt obwohl die header mit drin is :D

Ich habe cout auch mal versucht. Hatte mich auch schon gewundert als ich die Fehlermeldung bekam "cout nicht deklariert". Hab zwar danach #include<iostream> eingefügt. Aber das ging dann immer noch nicht. Das ganze ist schon wesentlich schwerer als das ganze über Konsole zu machen.

Hat denn keiner eine Ahnung wie sich das ein Anfänger schnell beibringen kann?

Hast du dir schonmal den Link angeschaut den Guybrush gepostet hat?

Ja, das habe ich. Aber im Moment versteh ich noch nicht ganz was dieser Quelltext machen soll. Aber ich bin noch dabei. Ich werde mir das heute Abend in Ruhe mal anschauen. In der Firma wird man andauernd gestört. Ich weiss auch nicht was ihr alle mit hook meint. Das das ein feature von Windows ist hab ich schon gelesen. Aber was genau weiss ich nicht. Das muss ich heute Abend in Ruhe machen.

Wenn ich es mir genau durchgelesen habe, meld ich mich morgen mal. Bist du morgen auch wieder da,falls ich fragen habe über diese Seite?

Sunflower

Kann morgen erst wieder abends online gehen...

Aber es gibt genug fähige Leute hier im Forum!

Viel Spass und Glück mit dem Beispiel...

Un wenn du das nicht hinbekommst versuche mal ne DLL zu erstellen

mit dem MSVC6 Wizard und eine Funktion in dieser DLL aus einem

anderen Programm aus aufzurufen...

Gruß

Diablo999

Die Idee einen Windows Hook zu verwenden, ist schon der richtige Weg. Ein Hook ist eine Funktion, die beim Eintritt eines vorher festgelegten Ereignisses aufgerufen wird und darauf reagieren kann. Im Fall des Keyboard Hooks kann sie entscheiden, was mit der Tasteneingabe geschehen soll.

Um Dein Problem zu lösen, brauchst Du prinzipiell keine DLLs, ein normales Programm kann, so lange es läuft, auch eine Funktion als Hook registrieren. Vor dem Programmende, sollte sie den Hook jedoch wieder entfernen.

Wenn Du allerdings wirklich noch so massive Probleme mit Deiner IDE hast und nicht weißt, wozu die erzeugten Dateien gut sind, dann solltest Du Dich zuerst mit den Grundlagen von C/C++, der Windows-Programmierung und etwas mehr mit Deiner IDE beschäftigen, bevor Du das Projekt angehst.

Das System muss ja auf die Hook-Funktion zugreifen können und das kann es nicht wenn sich diese in einer Exe befindet weil es ja nicht an den Speicherbereich ran darf.

Damit das System die Hook Callback Funktion aufrufen kann muss sich diese in einer Dll befinden.

Grundsätzlich ja, allerdings ist es möglich einige Hooks auf einen eigenen Thread zu beschränken.

Die DLL-Variante könnte bei der Entwicklung noch problematisch sein, wenn die übrigen dem Desktop zugeordneten Prozesse noch laufen und die DLL nicht freigegeben wird.

Grundsätzlich ja, allerdings ist es möglich einige Hooks auf einen eigenen Thread zu beschränken.

Dann ist der Hook aber nur innherlab deiner Anwnedung gültig und nicht Systemweit.

Die DLL-Variante könnte bei der Entwicklung noch problematisch sein, wenn die übrigen dem Desktop zugeordneten Prozesse noch laufen und die DLL nicht freigegeben wird.

Das vestehe ich jetzt nicht. Entweder läuft der Hook bis er abgeschaltet wird oder bis das System heruntergefahren wird.

Dann ist der Hook aber nur innherlab deiner Anwnedung gültig und nicht Systemweit.

Richtig. Zum Testen sollte es aber reichen. Wenn der Code funktioniert, kann man den Hook immer noch systemweit installieren.

Das vestehe ich jetzt nicht. Entweder läuft der Hook bis er abgeschaltet wird oder bis das System heruntergefahren wird.

Den Hook kannst Du abschalten, die DLL wird beim Aktivieren des Hooks jedoch (implizit) von allen aktiven Prozessen des Desktops geladen, kann also auch noch nach dem Abschalten des Hooks in Verwendung sein. In der MSDN sind mehrere Voraussetzungen aufgezählt die eintreten müssen, damit die DLL wieder entladen wird.

hmmm, ich kann dir zwar nicht weiterhelfen, aber mal ne ganz dumme frage von mir : ist sowas kein kündigungsgrund ?

ich meine, die funktionsweise ist wie die eines sniffers und bei dem ist es ein kündigungsgrund. selbst wenn man ihn nur programmiert und auf seinem rechner ablegt.

sollte ich unrecht haben, verschiebt es in BABA´s blödes Geschwätzkorbchen :hells:

und noch eine sache, ich kann es mir nciht vorstellen, dass von einem anfänger so eine leistung erwartet wird. rechne mal lieber fakultäten rekursiv oder mach eine menüstruktur für alle windowsdienste.

Warum sollte es ein Kündigungsgrund sein ein Programm zu schreiben was man als Aufgabe bekommen hat? :confused: :confused:

Und warum sollte der Einstatz eines Sniffers generell ein Kündigungsgrund sein? Es ist lediglich ein Kündigungsgrund wenn du als nicht Systemadministrator ohne Erlaubnis der Verantwortlichen einen Sniffer in deiner Firma einsetzt und so die Daten anderer ausspionierst.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.