동시에 여러 프로그램을 자동화하는 방법(키보드 및 마우스 입력 보내기)

동시에 여러 프로그램을 자동화하는 방법(키보드 및 마우스 입력 보내기)

다른 프로그램을 자동화하기 위해 키보드나 마우스 입력과 같은 이벤트를 보내는 스크립트를 사용하고 싶습니다. 예를 들어 게임을 하는 봇을 생각해 보세요(저는 비디오 게임을 하지 않지만).

동시에 여러 (스크립트, 프로그램) 쌍으로 이 작업을 수행하고 싶습니다.

autoit 또는 win32 API를 사용하여 Windows에서 마우스와 키보드를 자동화할 수 있다는 것을 알고 있었지만 Windows에는 "활성 창"이라는 개념이 있습니다. 한 번에 하나의 활성 창만 있고 이것이 입력을 받을 수 있는 창입니다.

이 "활성 창" 개념 때문에 자동화할 수 없습니다.다수의프로그램을 한번에.

나에게는 어떤 대안이 있나요?

편집하다:다른 프로그램을 기다리지 않고 프로그램을 자동화해야 합니다. 키보드 단축키를 사용하여 활성 창을 전환하면 작동하지 않습니다. 또한 프로그램이 백그라운드에서 자동화되는 동안 컴퓨터를 사용하고 싶습니다.

답변1

현재 사용자의 입력을 묶는 것에 대한 대안을 포함하도록 업데이트되었습니다.

오토잇 autoit을 사용하면 다음과 비슷한 작업을 수행할 수 있습니다.

Opt("WinTitleMatchMode", 2)

While WinActive('Search')
    Send("{ALT DOWN}")
    Send("{TAB}")
    Send("{ALT UP}")
WEnd

여기서 '검색'에는 창 제목의 일부가 포함됩니다.

창 포커스의 순서를 알고 있다면 주어진 창에 도달하는 데 충분한 추가 시간을 탭으로 보낼 수 있습니다.

Alt+Tab의 순서는 항상 초점 역순입니다.

Win32 이것은 다른 스레드에서 답변되었으며 프로그래밍에 더 깊이 들어갑니다. 이 경로로 가고 싶다면 원하는 프로세스에 Windows 메시지를 보내야 합니다. 나는 다음을 살펴볼 것이다:Windows API를 사용하여 활성화하지 않고도 창에 키 입력을 보내려면 어떻게 해야 합니까?

그것은 신뢰할 수 없는 것 같고 많은 함정이 있을 것입니다. 주어진 애플리케이션에서 키보드 입력이 처리되는 방식에 대해 가정해야 합니다.

달성하려는 목표가 무엇인지 모르면 가상 머신을 사용하고 해당 인스턴스가 매크로/스크립트를 실행하도록 허용하는 것이 좋습니다. 이를 통해 사용자는 사용 중인 데스크톱을 묶지 않으면서도 컴퓨터를 계속 사용할 수 있습니다.

관련 정보