대부분의 Windows 응용 프로그램은 표준 windows 요소를 사용합니다. ...
https://autohotkey.com/docs/commands/WinGet.htm - ControlList 매개 변수를 사용하면 모든 표준 컨트롤 목록을 가져옵니다. 분들 :
https://autohotkey.com/docs/commands/ControlGet.htm
- 제어의 형태를 얻을 수 있으며,
https://autohotkey.com/docs/commands/ControlGetPos.htm은 - 위치 제어의 기준을 얻을 수있다.
일부
는 COM을 통해 제어 할 수 있습니다 :
https://gist.github.com/kheybot/7026077#automation-of-office-applications
명령 줄 콘솔 프로그램은 때때로 표준 스트림 (STDIN, STDOUT, STDERR, LPTn, PRN, NUL)를 사용하여, 직접와 통신, 또는 할 수있다 COM 또는 WSH를 사용하여 프로그램을 표시하는 터미널과 통신 할 수 있습니다. https://gist.github.com/kheybot/7026077#interact-with-command-line
이는 많은 레거시 데이터 입력 프로그램에 중요합니다.
브라우저 (예를 들어 크롬), 불행하게도,이 헤비급 구성 요소를 사용할 수 없습니다, 한 페이지에 너무 많은이있을 수 있지만, 이러한 COM, DDE으로 그들과 통신하기위한 다른 옵션이 있기 때문에, 등은 DOM와 통신하기 : 웹 브라우저를 https://gist.github.com/kheybot/7026077#browser-automation
, 나는 그리스 몽키와 웹 브라우저의 입력 영역 (주소 표시 줄 등)의 AHK-처리를 결합, 하이브리드 접근 방식에 갈 의향이 될 것입니다/웹 페이지 자체의 입력 필드를 처리하는 Tampermonkey 스크립트 - 자바 스크립트는 화면 스크래핑 소프트웨어보다 DOM을 사용하여 입력 영역을 더 잘 처리 할 수 있습니다.자동화를 위해 Selenium과 같은 기능 테스트 스위트를 사용하고 브라우저의 플러그인 기능을 사용하여 UI를 처리하기위한 확장을 작성할 수도 있습니다.
이 지금 당연히 두 프로그래밍 문제, ...
Java 응용 프로그램, Flash 응용 프로그램, HTML5 애플리케이션, 일부 그래픽 디자인 소프트웨어, 그리고 거의 모든 컴퓨터 게임이 단지 본질적 것을 의미 그래픽, 외부에서 컨트롤을 식별 할 방법이 없습니다.
이러한 경우에는 특정 컨트롤을 개별적으로 프로그래밍하여 실제로 수행 할 수있는 특정 영역을 식별하기 위해 기본 화면 스크래핑 기법 (http://www.autohotkey.com/docs/commands/ImageSearch.htm 및 http://www.autohotkey.com/docs/commands/PixelSearch.htm)을 사용해야합니다.
일반 탐지를위한 한 가지 옵션은 그림자 (그림자, 단추 구성 요소 등)를 감지하고 그러한 방법으로 탐지 된 구성 요소 사이를 이동하여 클릭을 보낼 수있는 것입니다. 불행히도 현대 평면 디자인은 이것이 항상 작동하지 않는다는 것을 의미하므로 평면 구석을 검색 할 수도 있습니다. 때로는 구석을 제외하고는 예외입니다. 그래픽 디자이너는 사람들을 싫어하기 때문에.
이 시점에서 여러분은 여기에있는 것은 프랙탈 복잡성의 무한한 토끼풀임을 알 수 있습니다.
당신은 당신이 정기적으로 사용하는 것이 많은 응용 프로그램이 작동하지 않습니다 간단한 ControlGet 솔루션을 만들 수 있습니다 ... 또는도에 대한 일반적인 솔루션을하는 동안 당신은, 개별적으로 많은 응용 프로그램을 대상으로하는 하이브리드 방식을 만들 수 있습니다 인식 할 수없는 앱.
자신 만의 용도로 이것을 만드는 경우, 알고 있고 정기적으로 사용하는 응용 프로그램과 작동하도록하기위한 목적으로 충분할 것입니다.
다른 사용자가 사용할 수 있도록 내게 필요한 옵션 소프트웨어로 작성하는 경우 각 응용 프로그램에 대해 사용자가 구성 할 수 있도록하는 것이 목표입니다. 사용자가 클릭하려는 입력 요소와 순서를 제어하게하십시오. 자동 감지 기능은 완벽하게 작동하지 않으며 이상적인 솔루션을 선택하지도 않습니다.