Gå til innhold

Automatiske tastetrykk i Windows....


Anbefalte innlegg

Veit ikke om dette er det rette stedet, men tror det..

 

Finnes det en måte (batch o.l.) som er slik at den automatisk trykker inn noen taster hvert 2. minutt f.ex.

 

Noe ala:

 

"...Keyboard "trykker" inn "I" i 2 sekunder"

Pause (2minutter)

Repeat alt helt til jeg stopper programmet...

 

 

Jeg kan ikke batch btw :D

Lenke til kommentar
Videoannonse
Annonse

Dette kan nok gjøres i BATCH via eksterne programmer/biblioteker, men da kan en jo kanskje like gjerne gjøre det i et program fullstendig. I dette innlegget har jeg vedlagt et program (laget i Visual Basic 6) som gjør akkurat følgende:

  • * Holder nede I-tasten i to sekunder.
    * Venter i to minutter.
    * Avslutter programmet om ESC er nedtrykket.
    * Går tilbake til første punkt.

Kildekoden finner du her:

Klikk for å se/fjerne innholdet nedenfor
Option Explicit

 

' Sender en tastaturhendelse til inndatastrømmen

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)

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

 

' Nødvendige konstanter

Const KEYEVENTF_EXTENDEDKEY = &H1

Const KEYEVENTF_KEYUP = &H2

 

Public Sub Main()

   

    ' Fortsett inntil ESC er nedtrykket

    Do Until GetAsyncKeyState(vbKeyEscape) <> 0

       

        ' Trykk I-tasten for 2 sekunder

        ClickKey vbKeyI, 2000

       

        ' Vent i to minutter

        Wait 120000

       

    Loop

   

End Sub

 

Public Sub ClickKey(Key As Long, iWait As Long)

 

    ' Press ned knapp

    keybd_event Key, 0, 0, 0

   

    ' Vent i den angitte tid

    Wait iWait

   

    ' Slipp knapp

    keybd_event Key, 0, KEYEVENTF_KEYUP, 0

   

End Sub

 

Public Sub Wait(ByVal Milliseconds As Long, Optional Interval As Long = 10)

 

    Dim iStart As Long, iNow As Long

   

    ' Hent starttid

    iStart = GetTickCount

 

    Do

   

        ' Vent i den angitte intervallet

        Sleep Interval

        DoEvents

       

        ' Hent den nye tiden

        iNow = GetTickCount

   

        ' Avslutt alt umiddelbart om ESC er nedtrykket

        If GetAsyncKeyState(vbKeyEscape) <> 0 Then

            Exit Sub

        End If

   

    ' Avslutningspremiss

    Loop Until (iStart + Milliseconds - Interval < iNow)

   

    ' Vent den resisterende tiden

    If iStart + Milliseconds - iNow > 0 Then

        Sleep iStart + Milliseconds - iNow

    End If

 

End Sub

Keypressing.zip

Endret av aadnk
Lenke til kommentar

finnes et scriptspråk som er lagd for å automatisere windows.

www.autoitscript.com

 

Klikk for å se/fjerne innholdet nedenfor

while 1
   sleep(20000)            ;pause i 20 sekunder
   send("a down")            ;trykker knappen a ned
   sleep(2000)              ;venter i 2 sekunder
   send("a up")             ;slipper knappen
WEnd 

Lenke til kommentar
  • 4 uker senere...
Dette kan nok gjøres i BATCH via eksterne programmer/biblioteker, men da kan en jo kanskje like gjerne gjøre det i et program fullstendig. I dette innlegget har jeg vedlagt et program (laget i Visual Basic 6) som gjør akkurat følgende:

  • * Holder nede I-tasten i to sekunder.
    * Venter i to minutter.
    * Avslutter programmet om ESC er nedtrykket.
    * Går tilbake til første punkt.
     

Kildekoden finner du her:

Klikk for å se/fjerne innholdet nedenfor
Option Explicit

 

' Sender en tastaturhendelse til inndatastrømmen

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)

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

 

' Nødvendige konstanter

Const KEYEVENTF_EXTENDEDKEY = &H1

Const KEYEVENTF_KEYUP = &H2

 

Public Sub Main()

   

    ' Fortsett inntil ESC er nedtrykket

    Do Until GetAsyncKeyState(vbKeyEscape) <> 0

       

        ' Trykk I-tasten for 2 sekunder

        ClickKey vbKeyI, 2000

       

        ' Vent i to minutter

        Wait 120000

       

    Loop

   

End Sub

 

Public Sub ClickKey(Key As Long, iWait As Long)

 

    ' Press ned knapp

    keybd_event Key, 0, 0, 0

   

    ' Vent i den angitte tid

    Wait iWait

   

    ' Slipp knapp

    keybd_event Key, 0, KEYEVENTF_KEYUP, 0

   

End Sub

 

Public Sub Wait(ByVal Milliseconds As Long, Optional Interval As Long = 10)

 

    Dim iStart As Long, iNow As Long

   

    ' Hent starttid

    iStart = GetTickCount

 

    Do

   

        ' Vent i den angitte intervallet

        Sleep Interval

        DoEvents

       

        ' Hent den nye tiden

        iNow = GetTickCount

   

        ' Avslutt alt umiddelbart om ESC er nedtrykket

        If GetAsyncKeyState(vbKeyEscape) <> 0 Then

            Exit Sub

        End If

   

    ' Avslutningspremiss

    Loop Until (iStart + Milliseconds - Interval < iNow)

   

    ' Vent den resisterende tiden

    If iStart + Milliseconds - iNow > 0 Then

        Sleep iStart + Milliseconds - iNow

    End If

 

End Sub

8233561[/snapback]

 

 

takker=)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...