Master Key v0.2 Alle Tastatur eingaben abfragen!

    • Release

    Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Mr. BlackStar.

      Master Key v0.2 Alle Tastatur eingaben abfragen!

      Master Key 0.2

      Idee:
      Mir ist aufgefallen das Benutzer immer wieder Probleme haben STRG + irgendwas abzufangen. Deshalb habe ich "Master Key" entwickelt.

      Beschreibung:

      Master Key ist eine Library mit der sie die Tastatur eingaben in echtzeit abfangen können. Dies ist nützlich für Programm die im hintergrund arbeiten. Zb. Screenshot Programme usw.. Dieses Tool wurde mit der Spezialfunktion versehen, dass sie auch eingaben abfragen können die auch Kombinationen sind. Dabei sind: STRG + C, V, A, S, Z und X. Deshalb auch der Name (Master Key). Die DLL ist Kinder leicht zu bedienen und kompackt.

      Screenshot:

      -Keiner. Da es eine Library ist (DLL) -

      System-Anforderungen:
      Mircosoft .NET Framework v2.0

      Verwendete Visual Basic Version:

      Visual Basic .NET
      Visual Basic 2010 (IDE)

      Kompatibilität mit:

      Windows XP (Alle Versionen)
      Windows Vista (Alle Versionen)
      Windows 7 (Alle Versionen)

      Download:

      Download Version 0.2 (ZIP-Komprimiert)

      Dateigröße hat ca. 6 KB
      (DLL hat ca. 14 KB)

      Aktuelle Version:
      0.0.2.0


      ToDo:

      * Eine ALT Funktion einfügen
      * Alle Zeichen die nicht von der Tastatur kommen entfernen

      Aufrufbeispiel:

      Spoiler anzeigen

      Sie brauchen für das Beispiel: Einen Timer (Interval = 100), und einen Button.

      VB.NET-Quellcode

      1. Imports Master_Key
      2. Public Class Form1
      3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Master Key Initialisieren
      4. MasterKey.StartScan() ' Hier werden alle eingaben aufgezeichnet
      5. MsaterKey.RegisterOutPut(TextBox1) ' hier können sie die Tasten die gedrückt wurden ausgeben (muss nicht)
      6. End Sub
      7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ' Interval muss nicht auf (1)! Die eingaben werden zwischen gespeichert! Deshalb auch Master Key!
      8. If MasterKey.KeyPressed(Keys.Back) = True Then ' Einfache Abfrage
      9. MsgBox("Die Zurück taste wurde gedrückt!")
      10. End If
      11. If MasterKey.SpecialKeyCombos.SpecialKeyPress(SpecialKeys.STRG_Z) = True Then ' Speziale Abfrage
      12. MsgBox("Yeah!")
      13. End If
      14. End Sub

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mr. BlackStar“ ()

      hmm, es gibt Schrott und es gibt offensichtlich Blackstar :S

      Ich habe jetzt 3 Posts von Blackstar in den letzten 3 Tagen gelesen, und Du scheinst immer noch nicht verstanden zu haben , daß OOD eventorientiert ist. Dieser Wrapper um die die GetAsyncKeyState API hätte es nie und nimmer in den Showroom schaffen sollen, vielmehr ist das ein Beispiel wie man es nicht tun sollte.

      Wer eine Lösung für das Abfangen von globalen Tastatureingaben sucht, sollte sich den Beitrag von Mike69 über die Hotkey Funktion anschauen oder sich mit einem einfachen Tastatur Hook via SetWindowsHookEx API auseinandersetzen.
      @pittgi

      Danke.
      Die Lizenz ist Freeware.

      @Kangaroo

      Ich mache dies (Master Key) ja nur auf Wunsch eines Users, für alle anderen. Wie du darüber denkst, ist deine Sache. und dafür habe ich halt die GetAysncKeysState API benutzt :) . Was soll den daran so schlimm sein. Ich meine es läfut doch herrvoragend. Und zum eigendlichen Thema oder Library sagst du nicht's? Ist sie nützlich? Wenn Ja , warum?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mr. BlackStar“ ()

      Mr. BlackStar schrieb:

      Was soll den daran so schlimm sein. Ich meine es läfut doch herrvoragend.

      Was Du in Deinen Projekten machst geht mich/uns nichts an,. Sobald Du jedoch im Showroom präsentierst, so gelten verschärfte Regeln , schliesslich sollen andere hier offensichtlich etwas lernen. Und das Argument "geht doch" ist für mich unterste Schublade, schliesslich kommt auch keiner (aus offensichtlichen wenn auch unterschiedlichen Gründen) auf die Idee seinen Ofen mit Diamanten oder Dynamit zu heizen, obwohl beides grundsätzlich möglich sein dürfte.

      Dein Lösungsansatz ist für einen Showroom einfach falsch / ineffektiv/ unökonomisch: um auf Tastatureingaben zu reagieren lasse ich keinen Timer mit hoher Frequenz im Kreis herumrennen: damit treibst Du die CPU-Belastung in die Höhe und Deine Anwendung fängt an zu laggen. Tippt der Benutzer schnell oder räumt eine andere Anwendung den Wert schon vorher ab, so funktioniert sie dennoch nicht.

      Mr. BlackStar schrieb:

      Ist sie nützlich? Wenn Ja , warum?

      Interessante Fragestellung: Nein, eher nicht, auch unabhängig vom Lösungsansatz.

      Eine Library sollte die Funktionalität kapseln, warum benötige ich also noch eine eigene Timer-Schleife um Tastatureingaben festzustellen ? Was bietet mir Deine Klasse an mehr Funktionalität / Komfort, was mir die direkte API GetAsynckeyState nicht bietet ? Warum eine DLL statt Sourcecode für so wenig Substanz ?

      Vorschlag: nimm den RegisterHotKey-Wrapper von EDR, erweitere ihn um die Registrierung / Deregistrierung von multiplen Hotkeys, und wähle eine sinnvolle Kapselung.

      Dann hast Du eine Library auf Basis eines sinnvollen Lösungsansatzes.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

      Kann sein, dass du diesen Code benutzt?

      VB.NET-Quellcode

      1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Integer) As Integer
      2. Public Function getkeypress() As Integer
      3. For i As Integer = 1 To 255
      4. If GetAsyncKeyState(i) = -32767 Then
      5. Return i
      6. End If
      7. Next i
      8. End Function

      Wenn das so ist, ist das ja ein Code von max. 12 Zeilen.

      VB.NET-Quellcode

      1. If i = 0 then
      2. Click.Enabled = True
      3. End if