행위

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

DB CAFE

(새 문서: == 오토잇 테스트 입력 커서의 위치 출력 == <source lang=autoit> #include <WinAPI.au3> Opt("WinTitleMatchMode", 2) ; 윈도우 타이틀 매치 모드 설정 Local $hWn...)
 
 
1번째 줄: 1번째 줄:
== 오토잇 테스트 입력 커서의 위치 출력 ==
+
== 오토잇 텍스트 입력 커서의 위치 출력 ==
 
<source lang=autoit>
 
<source lang=autoit>
 
#include <WinAPI.au3>
 
#include <WinAPI.au3>
15번째 줄: 15번째 줄:
 
         Local $iCursorPos = _WinAPI_GetCaretPos($hEdit)
 
         Local $iCursorPos = _WinAPI_GetCaretPos($hEdit)
 
         ConsoleWrite("텍스트 입력 커서의 위치: " & $iCursorPos & @CRLF)
 
         ConsoleWrite("텍스트 입력 커서의 위치: " & $iCursorPos & @CRLF)
 +
    Else
 +
        MsgBox(16, "오류", "에디트 컨트롤을 찾을 수 없습니다.")
 +
    EndIf
 +
Else
 +
    MsgBox(16, "오류", "Notepad를 찾을 수 없습니다.")
 +
EndIf
 +
</source>
 +
 +
== 오토잇 텍스트 입력커서의 문자열 검색 ==
 +
<source lang=autoit>
 +
#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
 
     Else
 
         MsgBox(16, "오류", "에디트 컨트롤을 찾을 수 없습니다.")
 
         MsgBox(16, "오류", "에디트 컨트롤을 찾을 수 없습니다.")

2024년 5월 12일 (일) 18:07 기준 최신판

thumb_up 추천메뉴 바로가기


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