Найти - Пользователи
Полная версия: Объединение команд в одну
Начало » Python для новичков » Объединение команд в одну
1
PythoNoob
Можно ли объединить несколько последовательных команд в одну? Если до, то как потом вызвать эту команду скажем n раз?
Enchantner
Что вы имеете в виду под понятием “объединять”? Что мешает просто создать функцию?
lol2Fast4U
Так это и есть функция. Пример:
def spam():
eggs = commands.getoutput('ls')
return eggs

return - возвращает переменную
потом:
print spam() + ‘eggs’
foo = spam()
bar = int(spam()) #так не получится
и.т.д. - где надо
PythoNoob
Допустим я хочу на клавиатуре нажать (программно) 20 раз по очереди “пробел”,“z”, “a”, “v”, “d” , или “n” раз , и мне надо вставить эти строки в разные части кода,
чтоб короче было как это сделать?
PythoNoob
допустим такой код:

import win32api

win32api.keybd_event(ord('V'), 0, 0, 0) # нажали V
win32api.keybd_event(ord('V'), 0, win32con.KEYEVENTF_KEYUP, 0) # Отжали V
win32api.keybd_event(ord('S'), 0, 0, 0) # нажали S
win32api.keybd_event(ord('S'), 0, win32con.KEYEVENTF_KEYUP, 0) # Отжали S

Вопрос: Как объеденить несколько этих строк в одну команду, чтоб в ней была возможность повтора нажатий?
Enchantner
PythoNoob
Модуль для подобных целей - pyatspi
Код будет выглядеть в вашем случае примерно так:
import pyatspi
reg = pyatspi.Registry
press = lambda x: reg.generateKeyboardEvent(x, None, pyatspi.KEY_PRESSRELEASE)
...
press(32)
где x - код нужной клавиши
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB