gpt4 book ai didi

python - Python 中的运行时错误

转载 作者:行者123 更新时间:2023-11-30 23:23:57 25 4
gpt4 key购买 nike

我正在研究可以从 python 中的按键和鼠标事件获得的信息,一切似乎都正常,除了当我退出程序时出现此错误。

运行时错误 R6031 - 尝试多次初始化 CRT。这表明您的应用程序中存在错误。

这是我的代码,并不是只有当我按“q”并且程序退出时才会发生。

import pythoncom, pyHook, sys
def OnMouseEvent(event):
# called when mouse events are received
print 'MessageName:',event.MessageName
print 'Message:',event.Message
print 'Time:',event.Time
print 'Window:',event.Window
print 'WindowName:',event.WindowName
print 'Position:',event.Position
print 'Wheel:',event.Wheel
print 'Injected:',event.Injected
print '---'
return True

def OnKeyboardEvent(event):
print "Message Name: ", event.MessageName
print 'Message:',event.Message
print 'Time:',event.Time
print 'Window:',event.Window
print 'WindowName:',event.WindowName
print 'Ascii:', event.Ascii, chr(event.Ascii)
print 'Key:', event.Key
print 'KeyID:', event.KeyID
print 'ScanCode:', event.ScanCode
print 'Extended:', event.Extended
print 'Injected:', event.Injected
print 'Alt', event.Alt
print 'Transition', event.Transition
print '---'
if chr(event.Ascii) == 'q':
sys.exit()
return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.MouseDown = OnMouseEvent
hm.HookKeyboard()
hm.HookMouse()
pythoncom.PumpMessages()

预先感谢您的帮助!

最佳答案

您必须“取消 Hook ”您创建的 Hook 才能正确退出。

终止“pythoncom.PumpMessages()”永久循环:

    if chr(event.Ascii) == 'q':
ctypes.windll.user32.PostQuitMessage(0)

以下代码可以在使用 Python 2.7.6 的 Windows 7 上正常运行。我还没有弄清楚如何让它在 Python 3.4 下工作,但当我知道时我会回来的!

import pythoncom, pyHook
import ctypes
import sys


def OnMouseEvent(event):
# called when mouse events are received
print('MessageName:', event.MessageName)
print('Message:', event.Message)
print('Time:', event.Time)
print('Window:', event.Window)
print('WindowName:', event.WindowName)
print('Position:', event.Position)
print('Wheel:', event.Wheel)
print('Injected:', event.Injected)
print('---')
return True

def OnKeyboardEvent(event):
print("Message Name: ", event.MessageName)
print('Message:', event.Message)
print('Time:', event.Time)
print('Window:', event.Window)
print('WindowName:', event.WindowName)
print('Ascii:', event.Ascii, chr(event.Ascii))
print('Key:', event.Key)
print('KeyID:', event.KeyID)
print('ScanCode:', event.ScanCode)
print('Extended:', event.Extended)
print('Injected:', event.Injected)
print('Alt', event.Alt)
print('Transition', event.Transition)
print('---')
if chr(event.Ascii) == 'q':
ctypes.windll.user32.PostQuitMessage(0)
return True


print("")
print('Python version:')
print((sys.version))
print("")

hm = pyHook.HookManager() # create a hook manager

hm.MouseAll = OnMouseEvent # watch for all mouse events
hm.HookMouse() # set the hook

hm.KeyDown = OnKeyboardEvent # watch for "OnKeyboardEvent"
hm.HookKeyboard() # set the hook

pythoncom.PumpMessages()


# if you reached this point you have terminated the program correctly!
# flush and close any open files etc.

hm.UnhookMouse()
hm.UnhookKeyboard()

print("")
print("The end of Mouse and KBD test!")
print("")

关于python - Python 中的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com