raw_input
함수는 다른 프로그램의 키 입력을 시뮬 레이팅하지 않습니다. 그러면 콘솔에 프롬프트가 출력되고, 콘솔에 대한 응답을 입력 할 때까지 기다렸다가 입력 한 내용을 스크립트에 반환합니다. 여기서는 전혀 쓸모가 없습니다.
실제로 원하는 것은 마우스 이벤트를 보내는 것과 같은 방식으로 키보드 이벤트를 앱에 보내는 것입니다.
당신이, 당신은 단지 대신에 일을 사용할 수 있습니다 존재하는 Windows 스크립트 호스트에 따라 달라질 수 있습니다 (나중에 Vista 및 XPSP3와 항상 있다고 생각하는, 이전 XP가 설치 될 수있다) 경우 낮은 레벨 :
:
wshell = win32com.client.Dispatch("WScript.Shell")
wshell.SendKeys("foo")
그렇지 않으면
, 당신은 (즉, win32api의 문서에 설명 된, 그래서 나는 그것을 알고 이미 가정) 다음이 같은 윈도우에 대한 핸들을 얻을해야합니다
def sendkey(hwnd, keycode):
win32api.PostMessage(hwnd, win32con.WM_CHAR, keycode, 0)
탭, 이스케이프 또는 리턴과 같은 특수 키를 처리하지 않습니다. 이를 위해서는 WM_KEYDOWN
및 WM_KEYUP
을 보내야합니다. 그러나 당신의 사용을 위해 WM_CHAR
은 당신이 원하는 것입니다.
문자열의 각 문자에 대해 keycode을 조회하는 기능이 필요합니다. '100'
의 경우 실제로는 ord('1')
, ord('0')
, ord('0')
이지만 모든 경우에는 그렇지 않습니다.
당신은 당신을 위해이 모든 것을 마무리 SendKeys
과 유사한 모듈을보고 할 수 있습니다.
아니면 AutoPy
같은 높은 수준의 자동화 라이브러리를 사용할 수 있습니다는 (이들 중 많은이 있고, 당신이 SO 검색하면 당신은 그들 모두에 대한 세부 정보를 확인할 수 있습니다).
또는 마우스 클릭 및 키 이벤트와 관련하여 브라우저를 자동화하고 대신 selenium
을 사용하여 적절한 (웹) 수준에서 처리하는 것을 잊어 버릴 수 있습니다.
브라우저를 자동화하는 것을 잊어 버리고 대신 mechanize
을 사용하여 브라우저에서 브라우저를 시뮬레이트하고 싶을 수 있습니다.
웹 페이지를 스크립팅하려는 경우 브라우저를 스크립팅하기 위해 ['selenium'] (http://docs.seleniumhq.org)과 같은 것을 사용하는 것이 훨씬 더 쉽습니다. 또는 [ 'mechanize'] (https://pypi.python.org/pypi/mechanize/)를 사용하면 브라우저에서 마우스 이벤트를 보내는 것보다 브라우저를 가짜로 만들 수 있습니다. – abarnert
http://infohost.nmt.edu/tcc/help/pubs/python/web/raw_input-function.html –
한편, raw_input (100)이 실제로하는 일은 [the docs] (http : //docs.python.org/2/library/functions.html # raw_input), 콘솔에'100'을 출력하고 응답을 입력 할 때까지 기다렸다가 그 응답을 프로그램에 반환하십시오. – abarnert