28. september 2003 - 17:24Der er
6 kommentarer og 1 løsning
pil til højre og ventre
Jeg er stadig newbie til dette program.
Jeg har lavet to knapper "Start" og "Stop".
Det skal så være sådan, at når man trykker på "Start", så skal den starte en løkke som bliver ved med at "trykke" skiftesvis på højre og venstre piltast. Men taster skal ikke kun registreres i programmet, men i det vindue du nu har aktivt...
Kan det lade sig gøre?
Min start knap hedder cmdstart og slut hedder cmdslut
F.eks. sådan her. Du skal tilføje en timer på din form:
Option Explicit Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Const VK_LEFT As Byte = 25 Const VK_RIGHT As Byte = 26 Const KEYEVENTF_KEYUP As Long = 2
Private Sub cmdslut_Click() Timer1.Enabled = False End Sub
Private Sub cmdstart_Click() Timer1.Enabled = True End Sub
Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 100 End Sub
Private Sub Timer1_Timer() keybd_event VK_LEFT, 0, 0, 0 keybd_event VK_LEFT, 0, KEYEVENTF_KEYUP, 0 Sleep 20 keybd_event VK_RIGHT, 0, 0, 0 keybd_event VK_RIGHT, 0, KEYEVENTF_KEYUP, 0 End Sub
Intervallet mellem hver venstre-højre tastning er 100 ms. (Timer1.Interval)
... der bør være et interval mellem hver tastning, både så systemet kan nå at reagere og så dit program ikke stjæler al CPU tiden.
Du skal selvfølgelig være klar over at sådan et program giver et Windows system hvor der ikke er ret meget der reagerer rigtigt, fordi det hele tiden mister fokus pga. tastetrykkene.
'------------------------ Form1 ------------------------ ' Timer1, Command1 og Command2 på Form1 ' Tryk på Start og aktiver dit explore vindue '------------------------------------------------------- Option Explicit
Private Sub Command1_Click() Timer1.Enabled = True Command1.Enabled = False Command2.Enabled = True End Sub
Private Sub Command2_Click() Timer1.Enabled = False Command2.Enabled = False Command1.Enabled = True End Sub
Command1.Caption = "Start" Command2.Caption = "Stop" Command2.Enabled = False End Sub
Private Sub Timer1_Timer() Static intCount As Integer intCount = intCount + 1 If intCount = 1 Then SendKeys "{LEFT}", True Else SendKeys "{RIGHT}", True intCount = 0 End If End Sub '------------------------ Form1 ------------------------
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.