実行すると現在の時刻がファイルに書き込まれるスクリプトを作成しようとしています。その後、Insert キーを押すたびに現在の時刻が書き込まれるように、バックグラウンドで開いたままにしておきます。ファイルにマイナス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
発言を引き立たせます。
これら 2 つを同じスクリプトに含めることは可能ですか、またはそれらを分離して両方を .bat などで呼び出す必要がありますか?
前もって感謝します。
(また、なぜ私がこれを行うプログラムが必要なのか疑問に思っている場合は、デスクトップ コンピューターを兄弟と共有することになっています。こうすれば自動化できるはずだし、降りるように言われたときに自分の時間をさりげなく前倒しする方法もあるはずだ.)