Autohotkey 주변에 완전히 타이핑 된 파이썬 래퍼.
pip install ahk
파이썬 3.8+가 필요합니다
Autohotkey V1 및 V2를 지원합니다. 또한 비 파이썬 종속성을 참조하십시오
from ahk import AHK
ahk = AHK ()
ahk . mouse_move ( x = 100 , y = 100 , blocking = True ) # Blocks until mouse finishes moving (the default)
ahk . mouse_move ( x = 150 , y = 150 , speed = 10 , blocking = True ) # Moves the mouse to x, y taking 'speed' seconds to move
print ( ahk . mouse_position ) # (150, 150)이 패키지와 함께 사용할 수있는 일부 기능의 비 exhaustive 예. 전체 API 참조 및 추가 기능은 전체 문서를 참조하십시오.
핫키는 콜백으로 Python funcces를 실행하도록 구성 할 수 있습니다.
예를 들어:
from ahk import AHK
def my_callback ():
print ( 'Hello callback!' )
ahk = AHK ()
# when WIN + n is pressed, fire `my_callback`
ahk . add_hotkey ( '#n' , callback = my_callback )
ahk . start_hotkeys () # start the hotkey process thread
ahk . block_forever () # not strictly needed in all scripts -- stops the script from exiting; sleep forever 이제 누를 때마다 + n , my_callback 콜백 함수는 백그라운드 스레드에서 호출됩니다.
콜백에 예외 핸들러를 추가 할 수도 있습니다.
from ahk import AHK
ahk = AHK ()
def go_boom ():
raise Exception ( 'boom!' )
def my_ex_handler ( hotkey : str , exception : Exception ):
print ( 'exception with callback for hotkey' , hotkey , 'Here was the error:' , exception )
ahk . add_hotkey ( '#n' , callback = go_boom , ex_handler = my_ex_handler )핫키를 제거하는 방법도 있습니다.
# ...
ahk . remove_hotkey ( '#n' ) # remove a hotkey by its keyname
ahk . clear_hotkeys () # remove all hotkeys주목하십시오 :
ahk.start_hotkeys() 와 함께)ahk.stop_hotkeys() 로 중지 할 수 있습니다 (콜백 실행을 적극적으로 중지하지 않음)관련 AHK 문서도 참조하십시오
Hotkey Process 스레드에 핫 스트링을 추가 할 수도 있습니다.
일반적인 AHK 문자열 교체를 지원하는 핫 스트링 외에도 핫 스트링 트리거링에 대한 응답으로 Python 콜백 (선택적 예외 처리기 포함)을 제공 할 수도 있습니다.
from ahk import AHK
ahk = AHK ()
def my_callback ():
print ( 'hello callback!' )
ahk . add_hotstring ( 'btw' , 'by the way' ) # string replacements
ahk . add_hotstring ( 'btw' , my_callback ) # call python function in response to the hotstring핫 스트링을 제거 할 수도 있습니다.
ahk . remove_hotstring ( 'btw' ) # remove a hotstring by its trigger sequence
ahk . clear_hotstrings () # remove all registered hotstrings from ahk import AHK
ahk = AHK ()
ahk . mouse_position # Returns a tuple of mouse coordinates (x, y) (relative to active window)
ahk . get_mouse_position ( coord_mode = 'Screen' ) # get coordinates relative to the screen
ahk . mouse_move ( 100 , 100 , speed = 10 , relative = True ) # Moves the mouse reletave to the current position
ahk . mouse_position = ( 100 , 100 ) # Moves the mouse instantly to absolute screen position
ahk . click () # Click the primary mouse button
ahk . click ( 200 , 200 ) # Moves the mouse to a particular position and clicks (relative to active window)
ahk . click ( 100 , 200 , coord_mode = 'Screen' ) # click relative to the screen instead of active window
ahk . click ( button = 'R' , click_count = 2 ) # Clicks the right mouse button twice
ahk . right_click () # Clicks the secondary mouse button
ahk . mouse_drag ( 100 , 100 , relative = True ) # Holds down primary button and moves the mouse from ahk import AHK
ahk = AHK ()
ahk . type ( 'hello, world!' ) # Send keys, as if typed (performs string escapes for you)
ahk . send_input ( 'Hello, {U+1F30E}{!}' ) # Like AHK SendInput
# Unlike `type`, control sequences must be escaped manually.
# For example the characters `!^+#=` and braces (`{` `}`) must be escaped manually.
ahk . key_state ( 'Control' ) # Return True or False based on whether Control key is pressed down
ahk . key_state ( 'CapsLock' , mode = 'T' ) # Check toggle state of a key (like for NumLock, CapsLock, etc)
ahk . key_press ( 'a' ) # Press and release a key
ahk . key_down ( 'Control' ) # Press down (but do not release) Control key
ahk . key_up ( 'Control' ) # Release the key
ahk . set_capslock_state ( "On" ) # Turn CapsLock on
if ahk . key_wait ( 'x' , timeout = 3 ): # wait for a key to be pressed; returns a boolean
print ( 'X was pressed within 3 seconds' )
else :
print ( 'X was not pressed within 3 seconds' )당신은 창으로 물건을 할 수 있습니다.
from ahk import AHK
ahk = AHK ()
win = ahk . active_window # Get the active window
win = ahk . win_get ( title = 'Untitled - Notepad' ) # by title
all_windows = ahk . list_windows () # list of all windows
win = ahk . win_get_from_mouse_position () # the window under the mouse cursor
win = ahk . win_get ( title = 'ahk_pid 20366' ) # get window from pid
# Wait for a window
try :
# wait up to 5 seconds for notepad
win = ahk . win_wait ( title = 'Untitled - Notepad' , timeout = 5 )
# see also: win_wait_active, win_wait_not_active
except TimeoutError :
print ( 'Notepad was not found!' ) from ahk import AHK
ahk = AHK ()
ahk . run_script ( 'Run Notepad' ) # Open notepad
win = ahk . find_window ( title = 'Untitled - Notepad' ) # Find the opened window; returns a `Window` object
# Window object methods
win . send ( 'hello' , control = 'Edit1' ) # Send keys directly to the window (does not need focus!)
# OR ahk.control_send(title='Untitled - Notepad', control='Edit1')
win . move ( x = 200 , y = 300 , width = 500 , height = 800 )
win . activate () # Give the window focus
win . close () # Close the window
win . hide () # Hide the window
win . kill () # Kill the window
win . maximize () # Maximize the window
win . minimize () # Minimize the window
win . restore () # Restore the window
win . show () # Show the window
win . disable () # Make the window non-interactable
win . enable () # Enable it again
win . to_top () # Move the window on top of other windows
win . to_bottom () # Move the window to the bottom of the other windows
win . get_class () # Get the class name of the window
win . get_minmax () # Get the min/max status
win . get_process_name () # Get the process name (e.g., "notepad.exe")
win . process_name # Property; same as `.get_process_name()` above
win . is_always_on_top () # Whether the window has the 'always on top' style applied
win . list_controls () # Get a list of controls (list of `Control` objects)
win . redraw () # Redraw the window
win . set_style ( "-0xC00000" ) # Set a style on the window (in this case, removing the title bar)
win . set_ex_style ( "^0x80" ) # Set an ExStyle on the window (in this case, removes the window from alt-tab list)
win . set_region ( "" ) # See: https://www.autohotkey.com/docs/v2/lib/WinSetRegion.htm
win . set_trans_color ( "White" ) # Makes all pixels of the chosen color invisible inside the specified window.
win . set_transparent ( 155 ) # Makes the specified window semi-transparent (or "Off" to turn off transparency)
win . always_on_top = 'On' # Make the window always on top
# or
win . set_always_on_top ( 'On' )
for window in ahk . list_windows (): # list all (non-hidden) windows -- ``detect_hidden_windows=True`` to include hidden
print ( window . title )
# Some more attributes
print ( window . text ) # window text -- or .get_text()
print ( window . get_position ()) # (x, y, width, height)
print ( window . id ) # the ahk_id of the window
print ( window . pid ) # process ID -- or .get_pid()
print ( window . process_path ) # or .get_process_path()
if win . active : # or win.is_active()
...
if win . exist : # or win.exists()
...
# Controls
edit_control = win . list_controls ()[ 0 ] # get the first control for the window, in this case "Edit1" for Notepad
edit_control . get_text () # get the text in Notepad
edit_control . get_position () # returns a `Postion` namedtuple: e.g. Position(x=6, y=49, width=2381, height=1013) AHK 클래스에서 기본 win_* 메소드를 사용하여 먼저 Window 객체를 만들지 않고도 직접 다양한 창 메소드를 호출 할 수도 있습니다. 예를 들어, 위와 같이 win.close() 대신 ahk.win_close(title='Untitled - Notepad') 대신 호출 할 수 있습니다.
from ahk import AHK
ahk = AHK ()
ahk . image_search ( 'C: \ path \ to \ image.jpg' ) # Find an image on screen
# Find an image within a boundary on screen
ahk . image_search ( 'C: \ path \ to \ image.jpg' , upper_bound = ( 100 , 100 ), # upper-left corner of search area
lower_bound = ( 400 , 400 )) # lower-right corner of search area
ahk . pixel_get_color ( 100 , 100 ) # Get color of pixel located at coords (100, 100)
ahk . pixel_search ( color = '0x9d6346' , search_region_start = ( 0 , 0 ), search_region_end = ( 500 , 500 )) # Get coords of the first pixel with specified color Clipboard 데이터를 가져옵니다
from ahk import AHK
ahk = AHK ()
ahk . set_clipboard ( 'hello N{EARTH GLOBE AMERICAS} ' ) # set clipboard text contents
ahk . get_clipboard () # get clipboard text contents
# 'hello ?'
ahk . set_clipboard ( "" ) # Clear the clipboard
ahk . clip_wait ( timeout = 3 ) # Wait for clipboard contents to change (with text or file(s))
ahk . clip_wait ( timeout = 3 , wait_for_any_data = True ) # wait for _any_ clipboard contents ClipboardAll 얻거나 설정할 수도 있습니다. 그러나 get_clipboard_all 에 의해 반환 된 것 보다 다른 데이터로 set_clipboard_all 호출하지 않아야합니다.
from ahk import AHK
ahk = AHK ()
# save all clipboard contents in all formats
saved_clipboard = ahk . get_clipboard_all ()
ahk . set_clipboard ( 'something else' )
...
ahk . set_clipboard_all ( saved_clipboard ) # restore saved content from earlier 클립 보드 내용이 변경 될 때 콜백을 실행할 수도 있습니다. 위에서 언급 한 핫키 방법과 마찬가지로 예외 처리기를 설정할 수도 있습니다. Hotkeys와 마찬가지로 on_clipboard_change CALLBACKS에는 .start_hotkeys() 호출되도록 요청해야합니다.
콜백 함수는 하나의 위치 인수를 받아야하며, 이는 클립 보드 데이터 유형을 나타내는 정수입니다.
from ahk import AHK
ahk = AHK ()
def my_clipboard_callback ( change_type : int ):
if change_type == 0 :
print ( 'Clipboard is now empty' )
elif change_type == 1 :
print ( 'Clipboard has text contents' )
elif change_type == 2 :
print ( 'Clipboard has non-text contents' )
ahk . on_clipboard_change ( my_clipboard_callback )
ahk . start_hotkeys () # like with hotkeys, must be called at least once for listening to start
# ...
ahk . set_clipboard ( "hello" ) # will cause the message "Clipboard has text contents" to be printed by the callback
ahk . set_clipboard ( "" ) # Clears the clipboard, causing the message "Clipboard is now empty" to be printed by the callback from ahk import AHK
ahk = AHK ()
ahk . sound_play ( 'C: \ path \ to \ sound.wav' ) # Play an audio file
ahk . sound_beep ( frequency = 440 , duration = 1000 ) # Play a beep for 1 second (duration in microseconds)
ahk . get_volume ( device_number = 1 ) # Get volume of a device
ahk . set_volume ( 50 , device_number = 1 ) # Set volume of a device
ahk . sound_get ( device_number = 1 , component_type = 'MASTER' , control_type = 'VOLUME' ) # Get sound device property
ahk . sound_set ( 50 , device_number = 1 , component_type = 'MASTER' , control_type = 'VOLUME' ) # Set sound device property 툴팁/트레이 팁
import time
from ahk import AHK
ahk = AHK ()
ahk . show_tooltip ( "hello4" , x = 10 , y = 10 )
time . sleep ( 2 )
ahk . hide_tooltip () # hide the tooltip
ahk . show_info_traytip ( "Info" , "It's also info" , silent = False , blocking = True ) # Default info traytip
ahk . show_warning_traytip ( "Warning" , "It's a warning" ) # Warning traytip
ahk . show_error_traytip ( "Error" , "It's an error" ) # Error trytip대화 상자
from ahk import AHK , MsgBoxButtons
ahk = AHK ()
ahk . msg_box ( text = 'Do you like message boxes?' , title = 'My Title' , buttons = MsgBoxButtons . YES_NO )
ahk . input_box ( prompt = 'Password' , title = 'Enter your password' , hide = True )
ahk . file_select_box ( title = 'Select one or more mp3 files' , multi = True , filter = '*.mp3' , file_must_exist = True )
ahk . folder_select_box ( prompt = 'Select a folder' ) CoordMode , DetectHiddenWindows 등과 같은 다양한 글로벌 상태를 변경할 수 있습니다. 따라서 이러한 매개 변수를 기능 통화로 직접 전달할 필요가 없습니다.
from ahk import AHK
ahk = AHK ()
ahk . set_coord_mode ( 'Mouse' , 'Screen' ) # set default Mouse CoordMode to be relative to Screen
ahk . set_detect_hidden_windows ( True ) # Turn on detect hidden windows by default
ahk . set_send_level ( 5 ) # Change send https://www.autohotkey.com/docs/v1/lib/SendLevel.htm
ahk . set_title_match_mode ( 'Slow' ) # change title match speed and/or mode
ahk . set_title_match_mode ( 'RegEx' )
ahk . set_title_match_mode (( 'RegEx' , 'Slow' )) # or both at the same time
ahk . set_send_mode ( 'Event' ) # change the default SendMode 생성 된 모든 스크립트에 추가 될 지시문을 추가 할 수 있습니다. 예를 들어, AHK Trayicon이 나타나는 것을 방지하기 위해 Notrayicon 지시문을 추가 할 수 있습니다.
from ahk import AHK
from ahk . directives import NoTrayIcon
ahk = AHK ( directives = [ NoTrayIcon ])기본적으로 일부 지침은 기능을 보장하기 위해 자동으로 추가되며 사용자 제공 지시문과 병합됩니다.
기본적으로 핫키 및 핫 스트링을 처리하는 데 사용되는 AHK 프로세스에는 지침이 적용되지 않습니다. 키워드 인수 apply_to_hotkeys_process=True 사용하여 핫키 프로세스에 지침을 적용하려면 :
from ahk import AHK
from ahk . directives import NoTrayIcon
directives = [
NoTrayIcon ( apply_to_hotkeys_process = True )
]
ahk = AHK ( directives = directives )위에서 설명한대로 원하는 경우 트레이 아이콘을 숨길 수 있습니다. 또한 트레이 아이콘을 사용자 정의하는 데 사용할 수있는 몇 가지 방법이 있습니다.
from ahk import AHK
ahk = AHK ()
# change the tray icon (in this case, using a builtin system icon)
ahk . menu_tray_icon ( 'Shell32.dll' , 174 )
# revert it back to the original:
ahk . menu_tray_icon ()
# change the tooltip that shows up when hovering the mouse over the tray icon
ahk . menu_tray_tooltip ( 'My Program Name' )
# Hide the tray icon
ahk . menu_tray_icon_hide ()
# Show the tray icon that was previously hidden by ``NoTrayIcon`` or ``menu_tray_icon_hide``
ahk . menu_tray_icon_show ()레지스트리 키를 읽고 쓰기/삭제할 수 있습니다.
from ahk import AHK
ahk = AHK ()
ahk . reg_write ( 'REG_SZ' , r'HKEY_CURRENT_USERSOFTWAREmy-software' , value = 'test' )
ahk . reg_write ( 'REG_SZ' , r'HKEY_CURRENT_USERSOFTWAREmy-software' , value_name = 'foo' , value = 'bar' )
ahk . reg_read ( r'HKEY_CURRENT_USERSOFTWAREmy-software' ) # 'test'
ahk . reg_delete ( r'HKEY_CURRENT_USERSOFTWAREmy-software' )키가 존재하지 않거나 다른 문제가 발생하면 예외가 제기됩니다.
이 라이브러리의 대부분의 방법은 비 블로킹 인터페이스를 제공하므로 AHK 스크립트가 실행되는 동안 Python 스크립트가 계속 실행될 수 있습니다.
기본적으로 모든 통화가 차단 됩니다. 다음 함수가 실행되기 전에 각 함수가 완전히 실행됩니다.
그러나 AHK가 일부 코드를 실행하는 동안 다른 코드를 실행하고 싶을 수도 있습니다. blocking 키워드 인수에 False 제공되면 AHK 함수가 백그라운드에서 수행되는 동안 기능 호출이 즉시 반환됩니다.
예를 들어, 마우스를 천천히 움직이고 움직일 때 위치를보고 할 수 있습니다.
import time
from ahk import AHK
ahk = AHK ()
ahk . mouse_position = ( 200 , 200 ) # Moves the mouse instantly to the start position
start = time . time ()
# move the mouse very slowly
ahk . mouse_move ( x = 100 , y = 100 , speed = 30 , blocking = False )
# This code begins executing right away, even though the mouse is still moving
while True :
t = round ( time . time () - start , 4 )
position = ahk . mouse_position
print ( t , position ) # report mouse position while it moves
if position == ( 100 , 100 ):
break blocking=False 지정할 때 항상 get_result 함수를 통해 반환 값을 완료하고 검색하기 위해 함수를 기다릴 수있는 특수 FutureResult 객체 (또는 아래에 논의 된 AsyncFutureResult 객체, 아래에 논의 된 Asyncfutureresult 객체)를 항상 받게됩니다. 함수가 정상적으로 None 되더라도 AHK가 함수 실행을 완료하는 데 유용 할 수 있습니다.
비 차단 통화 :
set_coord_mode Call 또는 이와 유사한) - 향후 버전에서 변경 될 수 있습니다.FutureResult 반환합니다 (또는 아래에서 논의 된 Async API의 AsyncFutureResult 객체, result 함수를 통해 결과 함수를 완료하고 검색 할 수 있습니다. 함수가 정상적으로 None 되더라도 AHK가 함수 실행을 완료하는 데 유용 할 수 있습니다. from ahk import AHK
ahk = AHK ()
future_result = ahk . mouse_move ( 100 , 100 , speed = 40 , blocking = False )
...
# wait on the mouse_move to finish
future_result . result ( timeout = 10 ) # timeout keyword is optional 비동기 API가 제공되므로 기능을 async / await 기능을 사용하여 호출 할 수 있습니다. 동기 API의 모든 동일한 방법은 Async API에서 사용할 수 있습니다.
from ahk import AsyncAHK
import asyncio
ahk = AsyncAHK ()
async def main ():
await ahk . mouse_move ( 100 , 100 )
x , y = await ahk . get_mouse_position ()
print ( x , y )
asyncio . run ( main ())비동기 API는 몇 가지 주목할만한 차이점을 갖는 일반 API와 동일합니다.
.mouse_position 또는 .title for Windows)은 ED를 await 수 있지만보다 직관적 인 API를 위해 추가 방법 ( get_mouse_position() 및 get_title() )가 추가되었으며 속성 사용에 대해 권장됩니다.ahk.mouse_postion = (200, 200) )는 ASYNC API에서 허용되지 않습니다 (RuntimeError가 높아짐). 속성 세터는 Sync API에서 사용할 수 있습니다.AsyncFutureResult 객체 ( blocking=False result timeout 반환 됨)는 SYNC API의 FutureResult 객체와 동일하게 작동합니다.또한 주목하십시오 :
AsyncAHK 인스턴스에서 기다린 작업은 동시에 실행되지 않습니다. Sync API에서와 같이 blocking=False 사용하거나 AsyncAHK 의 여러 인스턴스를 사용해야합니다. 이 라이브러리는 완전히 유형 힌트를 제공하여 mypy 와 같은 도구를 활용하여 코드의 유형-수정을 검증 할 수 있습니다. 유형 검사 기능을 구현하는 IDE는 또한 유형 힌트를 활용하여 코드가 안전 할 수 있도록 도와줍니다.
또한 임의의 AutoHotkey 코드를 .ahk 스크립트 파일 또는 AHK 코드를 포함하는 문자열로 실행할 수도 있습니다.
from ahk import AHK
ahk = AHK ()
my_script = '''
MouseMove, 100, 100
; etc...
'''
ahk . run_script ( my_script ) from ahk import AHK
ahk = AHK ()
script_path = r'C:PathTomyscript.ahk'
ahk . run_script ( script_path ) 이 패키지를 사용하려면 AutoHotKey 실행 가능 (예 : AutoHotkey.exe )이 필요합니다. 기본적으로 또는 기본 설치 위치에있을 것으로 예상됩니다 ( C:Program FilesAutoHotkeyAutoHotkey.exe v1 또는 C:Program FilesAutoHotkeyv2AutoHotkey64.exe V2.
Autohotkey V1 및 V2는 모두 완전히 지원되지만 사용하는 버전에 따라 일부 행동 차이가 발생합니다. 아래 참고 사항을 참조하십시오.
AutoHotkey 바이너리 (V1 및 V2 모두)를 공급하는 권장 방법은이 패키지의 binary 추가를 설치하는 것입니다. 이것은 필요한 실행 파이브를 제공하고 경로에 올바르게 배치되도록하는 데 도움이됩니다.
pip install "ahk[binary]"
또는 코드의 경로를 제공 할 수 있습니다.
from ahk import AHK
ahk = AHK ( executable_path = 'C: \ path \ to \ AutoHotkey.exe' ) AHK_PATH 환경 변수를 사용하여 실행 가능 위치를 지정할 수도 있습니다.
set AHK_PATH=C:PathToAutoHotkey.exe
python myscript.py 기본적으로 executable_path 매개 변수 (또는 AHK_PATH 환경 변수)가 설정되지 않으면 AutoHotKey V1 바이너리 이름 만 경로 또는 기본 설치 위치를 검색합니다. 이 동작은 기본적으로 V2를 사용할 수 있도록 향후 버전에서 변경 될 수 있습니다.
AutoHotkey 버전 2를 사용하려면 다음 작업을 수행 할 수 있습니다.
executable_path 키워드 인수 제공AHK_PATH 환경 변수를 설정하십시오.v2 와 함께 version 키워드 인수를 제공하십시오.예를 들어:
from ahk import AHK
ahk = AHK ( executable_path = r'C:Program FilesAutoHotkeyv2AutoHotkey64.exe' )
# OR
ahk = AHK ( version = 'v2' ) version 키워드 인수 ( "v1" 또는 "v2" 포함)를 제공하면 제공된 (또는 발견 된) 이진이 요청 된 버전과 일치하는지 확인하기위한 확인이 수행됩니다. version 키워드가 생략되면 제공된 (또는 발견 된) 실행 가능한 바이너리에서 버전이 자동으로 결정됩니다.
이 프로젝트의 API는 원래 AutoHotkey V1에 대해 설계되었으며 AutoHotkey v2를 사용하는 경우에도 기능 서명이 동일합니다. 대부분의 동작은 동일하게 유지되지만 V1에 비해 AutoHotkey V2를 사용할 때 일부 동작이 변경됩니다. 이는 주로 두 버전 간의 근본적인 차이로 인한 것입니다.
이 라이브러리와 함께 AutoHotkey V2를 사용할 때 경험할 수있는 주목할만한 차이점은 다음과 같습니다.
None 되지 않고 예외를 제기합니다 (AutoHotkey V2에서와 같이, 대상이 창이나 컨트롤을 찾을 수없는 대부분의 경우에 대상가 발생합니다)ControlSend ( ahk.control_send 또는 Window.send 또는 Control.send )의 동작은 control 매개 변수가 지정되지 않은 경우 AutoHotKey v2에서 다릅니다. V1에서는 키가 최상위 컨트롤로 전송되는데, 이는 일반적으로 올바른 동작입니다. V2에서는 키가 창으로 직접 전송됩니다. 이는 많은 경우 v2를 사용할 때 제어를 명시 적으로 지정해야한다는 것을 의미합니다.TrayTip ( ahk.show_traytip )의 secondstowait 매개 변수는 v2에서 제거되었습니다. 파이썬 래퍼 에서이 매개 변수를 지정하면 경고가 방출되고 매개 변수는 무시됩니다.Event 아닌 v2의 Input 으로 변경됩니다 (예를 들어, mouse_move 및 mouse_drag 에 대한 마우스 속도 매개 변수는 전송 모드가 변경되지 않으면 V2에서 무시됩니다).2 입니다. Autohotkey v1에서 1 입니다. title_match_mode 키워드 인수를 win_get 및이 키워드를 수락 하여이 동작을 제어하거나 set_title_match_mode 사용하여 기본 동작을 변경하기 위해이 키워드를 수락하는 기타 메소드에 사용하십시오 (비 블로킹 호출은 별도의 프로세스에서 실행되며 set_title_match_mode 의 영향을받지 않습니다). ahk 의 기능을 확장하기위한 확장을 개발할 수 있습니다. 자세한 내용은 확장 문서를 참조하십시오.
모든 기여는 환영하고 감사합니다.
피드백, 아이디어, 기능 요청 또는 질문을 위해 GitHub 문제 또는 PR을 자유롭게 열어주십시오.
이들은 파이썬으로 자동화에 일반적으로 사용되는 유사한 프로젝트입니다.
keyboard 제작자, Pure Python Mouse Control!