파이썬 -> 키보드 마우스 입력
pywinauto를 이용하는 경우
from pywinauto.application import Application
app = Application.start("notepad.exe")
app.Notepad.SetFocus()
app.Notepad.TypeKeys('''abcdefghijklmn{ENTER}opqrstuvwxyz''')
특정 창을 찾아서 입력할 경우
from pywinauto.application import Application
app = Application()
iffview = app.window_(title_re=".*IrfanView")
irfview.DrawOutline()
폰트 설정하는 예제
window = findwindow(title = "Untitled - Notepad", class = "Notepad")
SendKeys(window, "%OF") # Format -> Font
fontdialog = findwindow("title = "Font")
buttonClick(fontdialog, "OK")
이건 API를 사용하는 경우
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate('Some Application Title')We use a Windows Script Host COM interface to access the AppActivate
키 입력하기 ~
shell.SendKeys('%fo') # Alt+F, O
time.sleep(0.1)
shell.SendKeys(path)
shell.SendKeys('{ENTER}')
윈도우 창 찾기
import win32gui
from ctypes import *
user32 = windll.user32
x, y = win32gui.FindWindow(None, "Some Dialog Box").GetWindowRect()[0:2]
user32.SetCursorPos(x + 100, y + 150)
아래는 내가 만든거~ 오토매크로
#-*-coding:utf-8
import win32com.client
import win32con
import win32gui
import time
from ctypes import *
i=0
while i < 30:
time.sleep(90)
old= win32gui.GetForegroundWindow()
user32 = windll.user32
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate(u'창이름 ex) 이름없음- 메모장')
x = win32gui.FindWindow(None, u'창이름 ex) 이름없음- 메모장')
yy=win32gui.GetWindowRect(x)
user32.SetCursorPos(yy[0]+945, yy[1]+685)
time.sleep(1)
user32.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
user32.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
user32.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
user32.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
time.sleep(1)
win32gui.SetForegroundWindow(old)
i=i+1