Visual Basic - KeyDown Event

Diskutiere Visual Basic - KeyDown Event im Programmierung Forum im Bereich Software Forum; Hallo zusammen! :) Ich bin gerade dabei ein Programm zu schreiben welches bei verschiedenen Shortcuts, zum Beispiel durch drücken der Tasten...
E

Evory

Threadstarter
Mitglied seit
30.11.2008
Beiträge
69
Alter
30
Hallo zusammen! :)

Ich bin gerade dabei ein Programm zu schreiben welches bei verschiedenen Shortcuts, zum Beispiel durch drücken der Tasten ALT+F, ein Programm Starten soll. Ersteinmal muss ich es aber hinbekommen, dass mein Programm auch reagiert wenn das Fenster nicht aktiv ist.

Die Situation:
- Ich programmiere mit VB.net
- Im Form is die KeyPreview aktiviert
- Im Form selber funktioniert das KeyDown event
- Momentaner Quelltext:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.L Then
Label1.Text = "hi"
End If
End Sub


Im Prinzip ist alles was passiert:
Durch drücken der Taste "L" verändert sich der Text des Label1 in "hi". Aber nur solange das Fenster aktiv ist.

Was passieren soll:
Auch wenn ich mich nicht in dem Fenster befinde, sondern in einem anderen Prgramm oder nur am Desktop und "L" drücke soll sich der Text des Label1 in "hi" ändern.


Vielen Dank im Voraus! :)

Evory!
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
Du meinst also, selbst wenn Du mit Word arbeitest oder hier im Winboard was schreibst oder wann immer Du die Taste "L" drückst, dann soll in Deinem Fenster "hi" stehen?
Dann musst Du Dich in den Keyboard-Treiber einklinken, damit jedes L abgefangen und von Deinem Programm verarbeitet werden kann.
In erster Näherung würde ich sagen, ist dafür VB.NET nur bedingt geeignet, obwohl es vielleicht sogar geht.
 
gman24

gman24

Mitglied seit
13.07.2006
Beiträge
1.860
vielleicht hilft dieser (leider englische) thread etwas weiter.

ich weiss aus delphi, dass man in programmen ein globales ereignis abfangen kann. das in dem thread gepostete code soll für vb net sein.
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
vielleicht hilft dieser (leider englische) thread etwas weiter.

ich weiss aus delphi, dass man in programmen ein globales ereignis abfangen kann. das in dem thread gepostete code soll für vb net sein.
Schöner Tipp. Aber wenn ich das genau lese, scheint sich das nur auf die Verwendung innerhalb des Programms zu beziehen, d.h. der Hotkey funktioniert nur, wenn das Programm den Fokus hat.
 
gman24

gman24

Mitglied seit
13.07.2006
Beiträge
1.860
Schöner Tipp. Aber wenn ich das genau lese, scheint sich das nur auf die Verwendung innerhalb des Programms zu beziehen, d.h. der Hotkey funktioniert nur, wenn das Programm den Fokus hat.
in dem code-beispiel wird das ereignis direkt aus den messages abgegriffen, die windows bekommt, also unabhängig davon, was gerade den fokus hat.

da der threadersteller aber dann im programm selbst eine ausgabe erzeugen will, muss er sich selbst wieder den fokus für das programm verschaffen (über das fenster-handfe) und dann die aktion durchführen.

ich selbst habe in delphi selbst immer freeware-komponenten verwendet, die die windows-ereignisse verarbeitet haben, aber die theorie, die dahinter steckt habe ich schon begriffen.
 
E

Evory

Threadstarter
Mitglied seit
30.11.2008
Beiträge
69
Alter
30
Genau, es soll einfach nur "hi" erscheinen. Wenn das funktioniert kann ich dort ja auch alles andere einbauen ^^

Ja so weit ich es verstanden habe bezieht sich das andere Problem nur auf das KeyDown Event innerhalb des Programms. Das ist kein Problem und einfach zu Handhaben.

Mein Problem ist, dass dieses KeyDown Event auch funktionieren soll, wenn ich mich nicht direkt in dem Programm befinde... dieses Programm wird versteckt im Hintergrund laufen.
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
Probier doch mal den Tipp von gman24 aus.
 
gman24

gman24

Mitglied seit
13.07.2006
Beiträge
1.860
noch ein anderes, etwas einfacheres beispiel

probier doch einfach mal aus. in beiden beispielen wird aber auf die windows-messages zurückgegriffen, die immer anfallen, unabhängig davon, ob dein programm den fokus hat oder nicht.
 
E

Evory

Threadstarter
Mitglied seit
30.11.2008
Beiträge
69
Alter
30
Vielen Dank euch allen!

Danke gman24, das 2. Beispiel war genau das was ich gesucht habe :)

Jetzt kann es ja weiter gehen^^
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Ich empfehle übrigens das AddOn bzw. die Website von PInvoke: http://www.pinvoke.net/

In der MSDN ist auch alles genau dokumentiert, was du brauchst. Vermeide auf jeden Fall einfach nur Beispielcode zu kopieren. Wichtiger ist es ihn zu verstehen, auch wenn es so mühsamer und zeitaufwändiger ist.

Dort findest du meist recht gute Beispiele zur Windows-API. Die wirst du noch öfter brauchen. ;)
 
Thema:

Visual Basic - KeyDown Event

Sucheingaben

visual basic 6 keypreview windows 7

Visual Basic - KeyDown Event - Ähnliche Themen

  • KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access

    KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access: Durch das Windows-Update KB4512509 kommt es in einer von mir programmierten Access-Datenbank mit einer größeren Zahl von Nutzern (NGOs) zu...
  • Microsoft Visual Basic for Applications

    Microsoft Visual Basic for Applications: Liebe Community, ich bräuchte eure Hilfe. Ich arbeite mit einer Leistungsdatenbank mit Microsoft Access, die funktioniert auf einem anderen...
  • visual basic 2010 Warum gibt es keine structur heap allocation zb.: mit shadowing

    visual basic 2010 Warum gibt es keine structur heap allocation zb.: mit shadowing: Guten Abend, es ist gut möglich, dass diese meine Frage in der Development Seite geschrieben werden sollte. Ich kann mir leider keine Zeit...
  • Anzeige von Visual Basic

    Anzeige von Visual Basic: Hallo, seit langem krieg ich immer wieder das Fenster “Microsoft Visual c++ Runtime Library” auf meinen Desktop. Was soll ich damit. Englisch...
  • visual basic programm funktioniert nicht mehr

    visual basic programm funktioniert nicht mehr: Hallo, kann mir wer sagen was Visual Basic für ein Problem hat? Problemereignisname: APPCRASH Anwendungsname: vbexpress.exe...
  • Ähnliche Themen

    Oben