Windowsでキーが押されるたびに、このコードを使用してキーの押下を記録しています。私の目には、コードは完璧です。不要なループや未定義の変数はなく、うまく機能するはずです。
ただし、ターミナルでこれを取得し続けます:
Everything Imported Successfully
Starting Loop
Beginning Checks
Traceback (most recent call last):
File "C:\Users\***\relogged.pyw", line 15, in <module>
loop(OldKeyChar=[])
File "C:\Users\***\relogged.pyw", line 9, in loop
if OldKeyChar[num] == '1': #check to see if key was pressed
IndexError: list index out of range
私は何が欠けていますか?動作するはずですが、代わりに私のコードがエラーを引き起こします。
import win32api
print("Everything Imported Successfully")
def loop(OldKeyChar):
print("Beginning Checks")
while(True): #always checking
for num in range(0,127): #iterate through list of ascii codes
if not win32api.GetAsyncKeyState(num): #if key is not being pressed
if OldKeyChar[num] == '1': #check to see if key was pressed
OldKeyChar[num] = '0' #make sure not recorded again
else:
OldKeyChar[num] = '1' #add pressed key to pressed list
OldKeyChar = ['0' for i in range(0,127)]
print("Starting Loop")
loop(OldKeyChar=[])