joehuaba
Goto Top

Tastatureingaben abfangen

Hallo Zusammen,

ich hab folgendes Problem:


Ich fange mit einem Programm bestimmte Tastenkombinationen ab.
Das funktioniert auch soweit. Allerdings nur wenn die WindowsForm quasi im Vordergrund geöffnet ist.
Wenn ich sie minimiere, dann kann er die Tastenkombination nicht mehr abfangen.

Programmcode:
Public Class Form1

Private Sub frmTimingP2P_Load(ByVal sender As System.Object, ByVal e As _ 
                                   System.EventArgs) Handles MyBase.Load

        Me.KeyPreview = True


    End Sub



    Private Sub frmTimingP2P_KeyDown(ByVal Sender As Object, ByVal e As  _
                        System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown


        If (e.KeyCode = Keys.T AndAlso e.Modifiers = Keys.Control) Then
            MessageBox.Show("Ctrl + T")  
        End If


    End Sub
End Class

Nun meine Frage:
Bekommt man es irgendwie hin, dass er immer alle Tastenanschläge prüft, auch wenn die WindowsForma minimiert, oder nicht im Vodergrund ist ?

Vielen Dank im Vorraus face-smile

Content-ID: 278587

Url: https://administrator.de/contentid/278587

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

wiesi200
wiesi200 29.07.2015 um 07:49:16 Uhr
Goto Top
Hallo,

Für sowas gibt es normal Dienste
joehuaba
joehuaba 29.07.2015 um 08:06:27 Uhr
Goto Top
Ja das stimmt.
Leider hat das alles einen anderen Hintrund,
es sollte schon eine Windows Form sein face-smile
wiesi200
wiesi200 29.07.2015 um 08:17:35 Uhr
Goto Top
So und jetzt frag dich mal selber wie man dir eine hinreichend korrekte Antwort geben kann wenn du die Hintergründe nicht kpl. klärst?
joehuaba
joehuaba 29.07.2015 um 08:46:03 Uhr
Goto Top
Ein paar Leute in einer bestimmten Abteilung nutzen ein Spezielles Tool.
Dafür ist es wichtig zu sehen, was die letzten Kopierten Text-Zeilen waren.

Meine Idee war:
Wenn STRG+C gedrückt wird, kopiere Text aus Zwischenablage in Textbox der WindowsForm.

Das ist der Hintergrund
emeriks
Lösung emeriks 29.07.2015 aktualisiert um 15:45:11 Uhr
Goto Top
Hi,
und wenn Du einfach permanent die Zwischenablage abfragen würdest und bei Änderung des Inhalts reagierst?

E.
joehuaba
joehuaba 29.07.2015 um 12:16:22 Uhr
Goto Top
@emeriks
So hab ich mir das ganze noch gar nicht überlegt face-smile
haha Mist face-big-smile
Danke :D
joehuaba
joehuaba 29.07.2015 aktualisiert um 15:46:05 Uhr
Goto Top
Fertig, funktioniert nun face-smile
Danke an @emeriks für den Denkanstoß face-big-smile

Public Class Clipboard


    Private Sub Clipboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Timer.Interval = 1300
        Timer.Enabled = True
        My.Computer.Clipboard.SetText("initiateClipboardSoftware")  
    End Sub



    Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
        Me.Hide()

        'Wenn File in Clipboard, dann mach nichts...  
        Dim data As IDataObject = My.Computer.Clipboard.GetDataObject
        If data.GetDataPresent(DataFormats.FileDrop) Then

        Else
            If My.Computer.Clipboard.GetText.ToString <> "" Then  
                  txtString.Text = My.Computer.Clipboard.GetText.ToString
            Else
                If My.Computer.Clipboard.GetText.ToString = "" Then  
                    My.Computer.Clipboard.SetText(txtString.Text)
                Else
                End If
            End If
        End If
    End Sub



End Class

Ist zwar keine "saubere" Programmierung, aber funktioniert face-smile