Ваш код на самом деле не имеет никакого смысла. Давайте пройдем через то, что он делает:
keylog= chr(event.Ascii)
print keylog
Это печатает нажатой клавишу.
key = event.WindowName
print key
Это печатает название окна. Я не уверен, почему вы вставляете его в переменную под названием key
, когда это не ключ, но это не меняет того, что она делает.
time.sleep(0.1)
Это делает паузу, предположительно, чтобы вы могли пропустить ключи, если пользователь вводит слишком быстро?
if(key==event.WindowName):
pass
Это всегда верно, так как вы настроили key = event.WindowName
ранее, а event
объект не изменится на лету.
else:
key = event.WindowName
print key
Это никогда не происходит, как объяснялось выше. Но, если бы это было так, это установило бы key
на значение, которое оно уже имеет (имя окна), и распечатать его снова.
Мое предположение, что вы, , пытаетесь сделать, чтобы напечатать только имя окна, если оно отличается от последнего времени или что-то в этом роде? Быстрый & грязный способ сделать это с глобальной переменной:
lastWindow = None
def OnKeyboardEvent(event):
global lastWindow
window = event.WindowName
key = chr(event.Ascii)
if window != lastWindow:
print window
lastWindow = window
print key
Итак, в тестовом случае, вместо этого:
a Start menu b Start menu c Start menu d cmd.exe
Вы должны получить это:
Start menu a b c cmd.exe d
(Хотя на самом деле вы собираетесь использовать их на отдельных строках, а не в пространстве, потому что ваш код просто print keylog
и print key
, и я сделал то же самое. хотите, чтобы все они были на одной линии, поместили запятую в конец каждого print
.)
Здравствуйте, Спасибо за ваш ответ. Ваш код немного помог мне в том, что я получаю. 'Start Menu б с d' Теперь он делает дубликаты записей для WindowTitle, но теперь я некоторые проблемы 1. Это делает новую строку для каждой буквы. 2. Теперь он захватывает название заголовка окна только тогда, когда нажата клавиша, и я хочу, чтобы он получил имя заголовка окна после каждого .1 секунды. 3. Он не проверяет имя названия окна, если клавиша не нажата. Надеюсь, вы могли бы помочь мне в этом. Спасибо – user2137297