Key combinations willen niet gaan

Status
Niet open voor verdere reacties.

Stress

Gebruiker
Lid geworden
7 feb 2010
Berichten
76
Hallo iedereen,

Ik zag dit topic en ik wil dus ook met die KeyBoard hook werken. Maar, hoe doe ik dit nu? Hoe laat ik mijn notifyicon1 laden?

Kan je een voorbeeld geven aub?

Groeten,
Jeffrey!
 
Download dit: http://www.themightyatom.nl/stuff/WindowsHookLib.dll

Deze laadt je in je toolbox. Je krijgt 3 nieuwe controls om te gebruiken, waaronder een keyboardhook control. Plaats een keyboardhook control op je form, plaats de code die je wilt laten uitvoeren onder het keyboardhook event. Zet deze wel onder een if statement van:

If e.KeyCode = Keys.Escape Then
'Jouw code hier
End If

Met KeyboardHook.Install activeer je de keyboardhook.

Plaats dat in dezelfde sub te zetten waar je ook de code hebt staan voor het hiden van je form en het activeren van de systray icon.

En als laatste, als je de systrayicon weer uitzet en het form weer zichtbaar maakt, doe je simpelweg:

KeyboardHook.Dispose

Als het niet lukt heb ik wel een voorbeeld proggy voor je.
 
Hey,

Ik heb dit nu
Code:
Public Class Form1

    Private Sub LlKeyboardHook1_KeyDown(ByVal sender As Object, ByVal e As WindowsHookLib.KeyEventArgs) Handles LlKeyboardHook1.KeyDown
        If e.KeyCode = Keys.Escape Then
            Label1.Visible = True
        End If
    End Sub
    Private Sub NotifyIcon1_Load(ByVal sender As Object, ByVal e As WindowsHookLib.KeyEventArgs)
        LlKeyboardHook1.InstallHook()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LlKeyboardHook1.Dispose()
    End Sub
End Class

En als ik ESC druk dan gebeurt er niets.

Wat doe ik verkeerd?
 
Code:
    Private Sub NotifyIcon1_Load(ByVal sender As Object, ByVal e As WindowsHookLib.KeyEventArgs)
        LlKeyboardHook1.InstallHook()
    End Sub

Ik weet niet of dit zo werkt. Het werkt zowiezo niet omdat je geen Handles ... hebt opgegeven.
Je moet installhook() onder de sub zetten die je form hide en het notifyicon activeert. Dus bijvoorbeeld zo:

Code:
            Me.Hide() 'Hide het form
            Me.ShowInTaskbar = False 'Applicatie niet zichtbaar in taakbalk
            NotifyIcon1.Visible = True 'Activeer het systemtray icon
            KeyboardHook.InstallHook() 'Activeer de keyboardhook.

Als je daarna het form weer zichtbaar wilt hebben (door bijvoorbeeld een dubbelklik op de systrayicon) en je wilt dat dan de keyboardhook gedeactiveert wordt, doe je dit:

Code:
    Private Sub NotifyIcon1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick

        Me.Show() 'Form weer zichtbaar maken
        Me.ShowInTaskbar = True 'Applicatie zichtbaar in taakbalk
        NotifyIcon1.Visible = False 'Systrayicon deactiveren
        KeyboardHook.Dispose() 'Keyboardhook deactiveren

    End Sub
 
Bedankt voor de goeie uitleg enzo.
Maar, het is nogal moeilijk te begrijpen enzo. Is het mogelijk dat ik dat voorbeeldje even te zien kan krijgen? Dan zal ik het misschien beter verstaan :)

Groetjes,
Stress!
 
bedankt TMA, het werkt allemaal.
Maar, ik geef nu de mensen de kans om te kiezen uit ENKELE knoppen met radiobuttons.
Dit lukt nu wel, maar hoe kan ik nu doen dat ze het programma afsluiten dat het programma'tje BLIJFT onthouden welke knoppen hij gekozen had.

Groeten,
Stress!
 
Je kan bijvoorbeeld een bestand laten aanmaken zonder enige inhoud erin, en dan de naam van dat bestand word dan wat je als gebruiker geselecteerd hebt (jpg, png etc). Dan check als je het programma start welke bestandsnaam dat bestand is. Is dat jpg, dan zet je het bestandstype voor de screenshot op jpg.

Misschien wat onduidelijk, ik zit ff zonder VB hier.
 
Laatst bewerkt:
Ey,

Da's ook al opgelost.
Maar, welk probleem ik nu heb is: Ik heb 2 radiobuttons en ik wil daar elk een verschillende functie in stoppen.
Bijv.: Radiobutton1 is aangeklikt dan moet je als je op ESC drukt iets gebeurt
en bij radiobutton2 is aangeklikt dat je dan op P (een voorbeeldknop) drukt dat hij dan werkt en ESC nieT.

Hoe kan ik dit doen? Dit is me niet duidelijk.
 
Dat is gewoon een kwestie van een If statement gebruiken:

if radiobutton1.checked = true then
'doe dit
else 'dus radiobutton2.checked = true
'doe dat
end if.
 
Volgens mij moet het zo:

Code:
        If RadioButton1.Checked = True Then
            If e.KeyCode = Keys.Escape Then
                'doe iets
            End If
        Else
            If e.KeyCode = Keys.P Then
                'doe iets
            End If
        End If
 
Perfect! Echt heel hartelijk bedankt, zo gaat mijn project verder!
 
Graag gedaan.

Als je wilt, kan ik je programma beta testen voordat je het uitbrengt op het forum. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan