我试图写一个脚本,当我运行它时,它会将当前时间写入一个文件,然后我希望它在后台保持打开状态,这样每当我按下插入键时,它就会将当前时间写入文件减去7分钟。在
我想让这两个功能正常工作,但它们只能单独工作。如中所示,它只会写下运行它的时间,如果我标记出让它保持打开状态的块来搜索按键(我使用的是pyhook)。它只会保持开放,寻找一个按键,如果我标记的部分,将写下它的时间,当我第一次运行它。这是我的密码import pyHook, pythoncom
from datetime import datetime
#writes the time when it starts bit
t = datetime.now()
h = t.hour
m = t.minute
s = t.second
if h > 12:
h = h - 12
if m < 10:
m = str(m).zfill(2)
file = open('time.txt', 'w')
file.write('Jeremiah got on at ' + str(h) + ':' + str(m))
#stays open and looks for a keypress bit
hookManager = pyHook.HookManager()
def OnKeyboardEvent(event):
keyPressed = event.KeyID
if keyPressed == 45:
t = datetime.now()
h = t.hour
m = t.minute
s = t.second
if h > 12:
h = h - 12
if m < 10:
m = int(str(m).zfill(2))
if m - 7 < 0:
h = h - 1
sub = m - 7
m = 60 + sub
else:
m = m - 7
file = open('time.txt', 'w')
file.write('Jeremiah got on at ' + str(h) + ':' + str(m))
return True
hookManager.KeyDown = OnKeyboardEvent
hookManager.HookKeyboard()
pythoncom.PumpMessages()
如果我没有划出两个部分,它将在启动时清除文本文件,然后保持打开状态以查找按键。只标记启动时间段将使其保持打开状态,以正确地查找密钥,并且不会清除文本文件。所以我很确定,一旦它开始寻找一个键,它就会清除文件,但我不确定为什么,特别是因为它甚至不应该运行任何代码来处理文本文件,直到按键被按下,从而触发了我的if语句。在
有没有可能把这两个代码放在同一个脚本中,或者我必须把它们分开,然后用.bat或其他什么东西来调用它们?在
提前谢谢。在
(另外,如果你想知道为什么我会想要一个能做到这一点的程序,我应该和我的兄弟姐妹们共用一台台式电脑,然后我们通过写下我们开始工作的时间来记录我们已经使用了多长时间。这样一来,我就可以自动完成这项工作,也可以在别人要求我下车时谨慎地提前安排时间。)