Form anzeigen nach Tastenkombination

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von TheFlash.

    Form anzeigen nach Tastenkombination

    Guten Tag,

    ich möchte eine Form beim Programm start verstecken und diese soll dann erscheinen wenn man SHIFT + Tab drückt.
    Hat jemand eine Idee wie das geht?

    Hoffe ihr könnt mir helfen :)
    Das kann sein :O Kann ich dir nicht sagen :) Musste einfach mal ausprobieren ;)
    Edit by nikeee13:
    Vollzitate von den Posts, die direkt vor einem stehen, sind sinnlos und tragen nur zur Unübersichtlichkeit bei -> Vollzitat entfernt.

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

    Was soll dieses Unsichtbar-gehabe?
    Das funktioniert doch bloß dann, wenn das Programm in der Autostart steht und der Nutzer davon nichts merkt.
    Du willst doch bestimmt irgend etwas ausspionieren oder so. :thumbdown:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    1. Nein

    2. Das mache ich weil man das Programm nicht immer brauch und ich SPIONIERE NIEMANDEN AUS!! ._.

    3. Das Programm ist am Anfang zu sehen der Nutzer lässt es mit der Tastenkombination verschwinden...


    ich habe mal ne frage... und zwar habe ich diesen Code


    VB.NET-Quellcode

    1. If My.Computer.Keyboard.ShiftKeyDown = True Then
    2. For i = 1 To 255
    3. Taste = GetAsyncKeyState(i)
    4. If Taste = -32767 And i = 65 Then
    5. Me.Hide() 'versteckt die Form
    6. NotifyIcon1.Visible = True
    7. End If
    8. Next
    9. End If
    10. End If


    Blos wie lasse ich sie per Tastenkombination wieder anzeigen? :)
    Vielleicht ist es besser, Du suchst Dir zunächst eine andere Taste als die Tab-Taste aus.
    Diese ist für dasd System so wichtig, dass Du sie nicht bei KeyDown zu fassen bekommst.
    Wenn die Form unsichtbar ist, bekommt sie auch kein KeyDown-Event.
    Da musst Du Dir eine Tastenkombination beim System registrieren.
    Probier mal dies:

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    2. If (e.Modifiers And Keys.Shift) = Keys.Shift Then
    3. If GetAsyncKeyState(65) = -32767 Then
    4. Me.Hide() 'versteckt die Form
    5. NotifyIcon1.Visible = True
    6. End If
    7. End If
    8. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Okay, also ja hast recht aber die Zahl 65 ist der Buchstabe A sprich : SHIFT + A
    aber wo finde ich dieses Event wovon du sprichst?

    Edit by nikeee13:
    Vollzitate von den Posts, die direkt vor einem stehen, sind sinnlos und tragen nur zur Unübersichtlichkeit bei -> Vollzitat entfernt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nikeee13“ ()

    TheFlash schrieb:

    aber wo finde ich dieses Event wovon du sprichst?

    Such mal auf der Startseite nach RegisterHotKey.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Okay ich habe folgenden Code gefunden (der sogar von dir gepostet wurde)

    VB.NET-Quellcode

    1. <DllImport("user32.dll")> _
    2. Private Shared Function GetAsyncKeyState(ByVal vKey As Int32) As Int16
    3. End Function
    4. Const VK_SHIFT As Long = &H10 ' Shift Taste
    5. Const VK_CONTROL As Long = &H65 ' Habe ich in A geändert
    6. Private Sub Tool_Paste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tool_Paste.Click
    7. Dim b1 As Boolean = ((GetAsyncKeyState(VK_SHIFT) And &H8000) <> 0) ' True bei Shift gedrückt
    8. Dim b2 As Boolean = ((GetAsyncKeyState(VK_CONTROL) And &H8000) <> 0) ' True bei A gedrückt
    9. ' ...
    10. End Sub


    ich verstehe aber immer noch nicht wie ich jetzt weiter mache :(


    Edit by nikeee13:
    Vollzitat entfernt.

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

    RegisterHotKey, UnregisterHotKey nicht aber GetAsyncKeyState. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!