문제
예를 들어 키가 눌린 시스템으로 보이게 할 수 있습니까? 예를 들어 ㅏ 키는 수천 번 압축 될 것이며, 수동으로하는 것은 시간이 많이 걸리고, 나는 나를 위해 그것을하기 위해 무언가를 쓰고 싶습니다. 그리고 내가 충분히 잘 아는 것은 Python입니다.
더 나은 방법으로, 키 프레스를 모방해야합니다. 즉, 키 프레스를 캡처하지 않아야합니다.
추가 정보 (요청에 따라) : Windows XP를 실행 중이며 키를 다른 응용 프로그램으로 보내야합니다.
해결책
설치 pywin32 확장. 그런 다음 다음을 수행 할 수 있습니다.
import win32com.client as comclt
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Notepad") # select another application
wsh.SendKeys("a") # send the keys you want
wscript.shell 객체의 설명서를 검색합니다 (모든 Windows XP 설치에 기본적으로 설치되었다고 생각합니다). 당신은 시작할 수 있습니다 여기, 아마도.
편집하다: F11을 보내기
import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")
# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")
다른 팁
Pyautogui를 사용하여 가상 키 프레스를 보낼 수도 있습니다.
문서는 다음과 같습니다. https://pyautogui.readthedocs.org/en/latest/
import pyautogui
pyautogui.press('Any key combination')
Shift 키와 같은 키를 보내거나 다음과 같이 Enter 키를 보낼 수도 있습니다.
import pyautogui
pyautogui.press('shift')
Pyautogui는 또한 다음과 같은 직선 텍스트를 보낼 수 있습니다.
import pyautogui
pyautogui.typewrite('any text you want to type')
"a"키를 1000 번 누르면 다음과 같이 보일 것입니다.
import pyautogui
for i in range(999):
pyautogui.press("a")
Alt-TAB 또는 동시에 하나 이상의 키를 눌러야하는 다른 작업 :
import pyautogui
# Holds down the alt key
pyautogui.keyDown("alt")
# Presses the tab key once
pyautogui.press("tab")
# Lets go of the alt key
pyautogui.keyUp("alt")
Autohotkey 이런 종류의 작업에 적합합니다 (키보드 자동화 / 리핑)
"A"를 100 번 보내는 스크립트 :
Send {A 100}
그게 다야
편집하다: 키를 특정 응용 프로그램으로 보내려면 :
WinActivate Word
Send {A 100}
이 모듈을 확인하십시오 건반 많은 기능 으로이 명령을 사용하여 설치하십시오.
pip3 install keyboard
그런 다음이 코드를 사용하십시오.
import keyboard
keyboard.write('A',delay=0)
'a'를 여러 번 쓰려면 루프를 사용하기 만하면됩니다.
메모:
핵심 'A'는 전체 Windows에 눌려 질 것입니다. 스크립트가 실행 중이며 브라우저로 가면 스크립트가 작성하기 시작합니다.
플랫폼이 Windows라면 실제로 Python을 추천하지 않습니다. 대신 조사하십시오 Autohotkey. 나를 믿으십시오, 나는 파이썬을 좋아하지만,이 상황에서 매크로 프로그램은 그 일에 이상적인 도구입니다. AutoHotkey의 스크립팅은 괜찮습니다 (내 의견으로는) 입력을 쉽게 시뮬레이션하면 수많은 시간을 절약 할 수 있습니다. AutoHotkey 스크립트를 "컴파일"할 수 있으므로 스크립트를 실행하기 위해 통역사가 필요하지 않습니다.
또한 이것이 웹에서 무언가를위한 것이라면 권장합니다. Imacros. Firefox 플러그인이므로 웹 사이트와 훨씬 더 나은 통합을 제공합니다. 예를 들어, (319,400)에서 Mouseclick을 시뮬레이션 한 다음 'A'1000 번 "을 누르는 대신"이 형식으로 1000 'A를 쓰기 "라고 말할 수 있습니다.
Linux의 경우 불행히도 키보드/마우스 매크로를 쉽게 만들 수있는 좋은 방법을 찾을 수 없었습니다.
키 프레스 이벤트를 보내기 전에 창을 전경으로 선호하는 대체 방법.
hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)