Avatar billede gigaload Nybegynder
28. september 2003 - 17:24 Der 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
Avatar billede eklander Nybegynder
28. september 2003 - 17:28 #1
Ja...det kan godt lade sig gøre
Avatar billede driis Nybegynder
28. september 2003 - 17:56 #2
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)
Avatar billede driis Nybegynder
28. september 2003 - 18:00 #3
... 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.
Avatar billede gigaload Nybegynder
28. september 2003 - 18:48 #4
det virker ikke....

den skal jo simulere tastningerne, fx i Internet Explore...
Avatar billede driis Nybegynder
28. september 2003 - 19:46 #5
Det skulle det da også gerne gøre. Men når det går så hurtigt har du måske svært ved at se at der sker noget.

Men hvad skal det bruges til ?
Avatar billede gigaload Nybegynder
28. september 2003 - 22:51 #6
der er et spil på www.axegamebabe.com, hvor man skal bruge de to taster, jo hurtigere jo bedre, men der sker ikke noget...
Avatar billede sjh Nybegynder
29. september 2003 - 06:00 #7
'------------------------ 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

Private Sub Form_Load()
  Timer1.Enabled = False
  Timer1.Interval = 100 '<- Speed

  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 ------------------------
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester