slacky Skrevet 26. januar 2012 Del Skrevet 26. januar 2012 (endret) Edit: Fungerer nå! Beklager at jeg tok opp plassen i databasen til diskusjon.no Koden: #!/usr/bin/python # -*- coding: utf-8 -*- import win32api, win32con from win32api import keybd_event as sendKey from time import sleep def sendTxt(key): for i in range(0, len(key)): #print(key[i]) sendKey(ord(key[i]), 0, win32con.KEYEVENTF_EXTENDEDKEY, 0) sendKey(ord(key[i]), 0, win32con.KEYEVENTF_KEYUP, 0) sleep(0.03) sendTxt('THIS IS SOME TEXT') Endret 26. januar 2012 av warpie Lenke til kommentar
Yumekui Skrevet 26. januar 2012 Del Skrevet 26. januar 2012 (endret) En liten pause på 0.05 sekunder mellom keydown og keyup kan være å anbefale for å gi hva enn du sender til tid til å registrere trykket. (Ihvertfall etter hva jeg har erfart). Litt off topic, men vet du forskjellen på å bruke 0 og win32con.KEYEVENTF_EXTENDEDKEY ? Usikker på dette selv. (win32con.KEYEVENTF_EXTENDEDKEY er visstnok 1 - etter hva jeg har skjønt er win32con kun en haug av konstanter gitt navn så de skal være lettere å finne frem til). Endret 26. januar 2012 av Yumekui Lenke til kommentar
slacky Skrevet 26. januar 2012 Forfatter Del Skrevet 26. januar 2012 (endret) En liten pause på 0.05 sekunder mellom keydown og keyup kan være å anbefale for å gi hva enn du sender til tid til å registrere trykket. (Ihvertfall etter hva jeg har erfart). Litt off topic, men vet du forskjellen på å bruke 0 og win32con.KEYEVENTF_EXTENDEDKEY ? Usikker på dette selv. (win32con.KEYEVENTF_EXTENDEDKEY er visstnok 1 - etter hva jeg har skjønt er win32con kun en haug av konstanter gitt navn så de skal være lettere å finne frem til). Kan være greit med en minimal pause mellom hvert tastetrykk, men skal ikke si jeg fikk noe problemer. Nå kan jeg ikke så mye om win32com, så jeg kan ikke si hva forskjellen på 0- og 1-statement er i dette tilfellet. Fungerer det likt, så er vel ikke det så nøye. Nå er det vanligste å bruke 1, og 2 (down/up). win32com er et python bibliotek som wrapper mange kommandoer som allerede eksisterer i windows, hvor de bruker "windll". Simpelthen for å forenkle det for python-brukere, slik at vi slipper tulle med "ctypes". Jeg fant til slutt ut at SendKeys-ctypes (for tastaturet) var en bedre løsning, denne var fantastisk på området. Noen få linjer med kode bak den, så det er utrolig lett for meg å modifisere orginalfilene. Endret 26. januar 2012 av warpie Lenke til kommentar
Yumekui Skrevet 26. januar 2012 Del Skrevet 26. januar 2012 (endret) Nå kan jeg ikke så mye om win32com, så jeg kan ikke si hva forskjellen på 0- og 1-statement er i dette tilfellet. Fungerer det likt, så er vel ikke det så nøye. Nå er det vanligste å bruke 1, og 2 (down/up). Dokumentasjonen fra Microsoft er uansett noe vag: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v=vs.85).aspx KEYEVENTF_EXTENDEDKEY (0x0001) - If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224). win32com er et python bibliotek som wrapper mange kommandoer som allerede eksisterer i windows, hvor de bruker "windll". Mm... win32com er hele pakken og win32con (den ene av de to modulene som ble importert) er konstantene? Jeg skal uansett ta en titt på ctypes - Takk for tips. Endret 26. januar 2012 av Yumekui Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå