D
DaGeek247
I am using the windows api feature getasynckeystate() to check the status of every key pressed; like this;
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
#do stuff
This works great, almost. The issue that comes up now is that every time i press a key, the code grabs two or three key presses.
So i tried making sure that repeated keys weren't pressed repeatedly;
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
if oldkeychar == num:
#don't do stuff
else:
#do stuff
this works great, but It won't record stuff like 'look' or 'suffer' because it doesn't record repeated keys. So I try doing a delay instead;
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
if oldkeychar == num:
if crrenttime > (time.time() - .5)
#do stuff because key has been repeated, but not because it was held down
else:
#don't do stuff because key is pressed to soon
else:
#do stuff because key is not repeated
currenttime = time.time()
this almost works, but I end recording some double keypresses, and missing others. Does anybody have any suggestions?
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
#do stuff
This works great, almost. The issue that comes up now is that every time i press a key, the code grabs two or three key presses.
So i tried making sure that repeated keys weren't pressed repeatedly;
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
if oldkeychar == num:
#don't do stuff
else:
#do stuff
this works great, but It won't record stuff like 'look' or 'suffer' because it doesn't record repeated keys. So I try doing a delay instead;
#always checking
while(True):
#iterate through list of ascii codes
for num in range(0,127):
#if ascii code key is being pressed
if win32api.GetAsyncKeyState(num):
if oldkeychar == num:
if crrenttime > (time.time() - .5)
#do stuff because key has been repeated, but not because it was held down
else:
#don't do stuff because key is pressed to soon
else:
#do stuff because key is not repeated
currenttime = time.time()
this almost works, but I end recording some double keypresses, and missing others. Does anybody have any suggestions?