행위

"오토잇으로 단축키 개발"의 두 판 사이의 차이

DB CAFE

1 오토잇 텍스트 입력 커서의 위치 출력[편집]

#include <WinAPI.au3>

Opt("WinTitleMatchMode", 2) ; 윈도우 타이틀 매치 모드 설정

Local $hWnd = WinGetHandle("Untitled - Notepad") ; Notepad 창 핸들을 가져옴

If $hWnd <> 0 Then
    ; Notepad의 에디트 컨트롤의 핸들을 가져옴
    Local $hEdit = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:1]")
    
    If $hEdit <> 0 Then
        ; 에디트 컨트롤에서 텍스트 입력 커서의 위치를 가져옴
        Local $iCursorPos = _WinAPI_GetCaretPos($hEdit)
        ConsoleWrite("텍스트 입력 커서의 위치: " & $iCursorPos & @CRLF)
    Else
        MsgBox(16, "오류", "에디트 컨트롤을 찾을 수 없습니다.")
    EndIf
Else
    MsgBox(16, "오류", "Notepad를 찾을 수 없습니다.")
EndIf

2 오토잇 텍스트 입력커서의 문자열 검색[편집]

#include <WinAPI.au3>

Opt("WinTitleMatchMode", 2) ; 윈도우 타이틀 매치 모드 설정

Local $hWnd = WinGetHandle("Untitled - Notepad") ; Notepad 창 핸들을 가져옴

If $hWnd <> 0 Then
    ; Notepad의 에디트 컨트롤의 핸들을 가져옴
    Local $hEdit = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:1]")
    
    If $hEdit <> 0 Then
        ; 에디트 컨트롤에서 텍스트 입력 커서의 위치를 가져옴
        Local $iCursorPos = _WinAPI_GetCaretPos($hEdit)
        
        ; 에디트 컨트롤에서 텍스트를 읽어옴
        Local $sText = ControlGetText($hWnd, "", $hEdit)
        
        ; 커서 위치에서 문자열을 추출
        Local $iStart = StringInStr($sText, @CRLF, 0, -1, $iCursorPos) + 1
        Local $iEnd = StringInStr($sText, @CRLF, 0, 1, $iCursorPos)
        If $iEnd = 0 Then $iEnd = StringLen($sText) + 1
        Local $sCurrentLine = StringMid($sText, $iStart, $iEnd - $iStart)
        
        ConsoleWrite("텍스트 입력 커서의 위치의 문자열: " & $sCurrentLine & @CRLF)
    Else
        MsgBox(16, "오류", "에디트 컨트롤을 찾을 수 없습니다.")
    EndIf
Else
    MsgBox(16, "오류", "Notepad를 찾을 수 없습니다.")
EndIf