Форум сайта python.su
0
Здравствуйте. Появилась потребность эмулировать нажаття клавиатуры и мышки в конкретном окне.
(Например, в браузере что открыт не на весь экран программа писала буквы, и кликает мышкой на закладки.)
И суть вопроса заключается в том как правильно прописать код, по захвату окна если браузер и программа кликер будет запускаться на виртуальной машине/планирую использовать FindWindow.
Отредактировано Standret (Дек. 25, 2014 18:08:24)
Офлайн
6
pywinauto
http://code.google.com/p/swapy/
http://python.su/forum/topic/21950/
Отредактировано Kasta_neda (Дек. 25, 2014 06:47:03)
Офлайн
0
Kasta_nedaЗдравствуйте. Для того чтобы установить можуль pywinauto насколько я знаю нужен sendkeys а он только для python 2.7 (если есть для python 3x будьте добры поделитесь ссылкой).
pywinautohttp://code.google.com/p/swapy/http://python.su/forum/topic/21950/
hwnd=win32gui.FindWindow(aaa, bbb) win32gui.SetForegroundWindow(hwnd)
import win32gui hwnd = win32gui.GetForegroundWindow() win32gui.MoveWindow(hwnd, 120, 120, 500, 500, True)
Отредактировано Standret (Дек. 25, 2014 17:43:27)
Офлайн
6
Показывает открытые
import win32gui def window_enum_handler(hwnd, resultList): if win32gui.IsWindowVisible(hwnd) and win32gui.GetWindowText(hwnd) != '': resultList.append((hwnd, win32gui.GetWindowText(hwnd))) def get_app_list(handles=[]): mlst=[] win32gui.EnumWindows(window_enum_handler, handles) for handle in handles: mlst.append(handle) return mlst appwindows = get_app_list() #return appwindows for i in appwindows: for y in i: try: print y.decode('cp1251') except: print y
from ctypes import windll import win32gui FindWindowW = windll.user32.FindWindowW FindWindowA = windll.user32.FindWindowA print FindWindowW(0, u"Program Manager") print FindWindowA(0, "Program Manager") hwn = win32gui.FindWindow(None, "Program Manager")#desktop print hwn
win32gui.SetActiveWindow win32gui.SetFocus win32gui.SetForegroundWindow(w)
Отредактировано Kasta_neda (Дек. 25, 2014 19:10:18)
Офлайн
6
ну или так
import win32gui import win32con toplist, winlist = [], [] def enum_cb(hwnd, results): winlist.append((hwnd, win32gui.GetWindowText(hwnd))) win32gui.EnumWindows(enum_cb, toplist) notepad = [(hwnd, title) for hwnd, title in winlist if 'notepad++' in title.lower()] notepad= notepad[0] hwnd = notepad[0] win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)#разворачивает, если свернуто окно win32gui.SetForegroundWindow(hwnd) bbox = win32gui.GetWindowRect(hwnd)
Отредактировано Kasta_neda (Дек. 25, 2014 19:25:54)
Офлайн
0
Kasta_neda
ну или так
Офлайн