Я пытаюсь написать скрипт, который, когда я его запускаю, будет записывать текущее время в файл, а затем я хочу, чтобы он оставался открытым в фоновом режиме, чтобы каждый раз, когда я нажимаю клавишу «Вставить», он записывал текущее время до файла минус 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 или что-то в этом роде?
Заранее спасибо.
(также, если вам интересно, с какой стати мне нужна программа, которая это делает, я должен делить настольный компьютер со своими братьями и сестрами, и мы отслеживаем, как долго мы были вместе, записывая время, когда мы добрались. Таким образом, я должен быть в состоянии автоматизировать это, а также иметь способ незаметно установить свое время вперед, когда меня попросят выйти.)