Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[VB6]Toetsen voor het gehele programma laten gelden

None
9 antwoorden
  • Het zal wel simpel wezen maar ik kan het niet vinden.

    als in mijn programma bijvoorbeeld enter wordt gedrukt moet hij een actie ondernemen.

    Das op zich niet zo moeilijk, maar hoe regel ik dat ik niet een aparte sub routine hoef aan te roepen? Dus niet zo:
    [code:1:9af67bc246]
    Private Sub toets_Keypress(KeyAscii As Integer)

    If KeyAscii = 13 Then
    Bereken
    End If

    End Sub[/code:1:9af67bc246]
  • Denk niet dat het anders kan hoor.
  • [quote:03d3df16db="Wiep Corbier"]Denk niet dat het anders kan hoor.[/quote:03d3df16db]

    Ok, dan heb ik het zo geprobeerd:

    [code:1:03d3df16db]
    Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = 116 Then

    ophoging = ophoging + 1
    Text1.text = empty

    End If

    End Sub
    [/code:1:03d3df16db]

    Punt waar ik dan last van krijg is dat hij pas naar End Sub de letter t in het tekstvlak neerzet. Text1.text = empty zou dan in principe na de End Sub moeten komen. Maar is er niet een manier om dat binnen deze routine te ondervangen?
  • Dat was erg simpel, kwam er achter dat ik dat op dezelfde manier kon ondervangen als die beep die hij geeft in een textvlak. Dit heb ik dus weer opgelost door de Keyascii op 0 te zetten.
  • je kunt sowiso form1.refresh (of hoe dat moet heten, je form iig) doen in een proceduure; dan wordt je form opnieuw geplaatst met gewijzigde dingen… text1.refresh zou ook kunnen werken, ben ik niet 100% zeker van :)
  • Hallo Diniz,

    [code:1:e6aa2fdc6b]function CheckKey(KeyCode)
    ' deze functie geeft 1 als de toets die jij bewaakt
    ' wordt gebruikt.

    calldll #user32, "GetAsyncKeyState", _
    KeyCode as ulong, _
    CheckKey as boolean
    end function


    if CheckKey(_VK_UP) then gosub [UP]

    [/code:1:e6aa2fdc6b]

    De functie GetAsyncKeyState staat in USER32.DLL

    Abcott
  • Ik zal het ff proberen, bedankt voor t mee denken :P .
  • [quote:446eb1add8="diniz"]Ik zal het ff proberen, bedankt voor t mee denken :P .[/quote:446eb1add8]

    Hmmm,

    Let op, ik heb een stukje Liberty Basic getoond. Jij moet de VB versie maken. D.w.z. dat je de declaraties nog moet plaatsen. En waarschijnlijk moet de USER32.DLL nog even apart openen.

    Abcott
  • ik heb zelf een keer een keylogger gemaakt, hier is de belangrijkste code:

    [code:1:b0cc81e998]
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

    Private Sub Timer1_Timer()
    txt = ""
    For i% = 1 To 255
    key = GetAsyncKeyState(i%)
    If key = -32768 Then
    txt = Chr(i%)
    'dit is je tekst
    end if
    next i%
    end sub
    [/code:1:b0cc81e998]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.