Skip to content
조회 수 33652 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

autohotkey) 오토핫키에서 자주쓰는 함수모음

 

 

   관련 게시물 :

 

   AUTOhotKEY 웹페이지 열지않고 소스 가져오기 또는 로그인 하기 

   AUTOhotKEY 오토핫키 콤보박스 제어하기

   AUTOhotKEY 웹페이지 감시결과에 따라 마이피플로 글 전송하기

   AUTOhotKEY 윈도우 ahk_id 추출하기

   Autohotkey 엑셀(Excel)에서 행값 증가시키기

   Autohotkey 30분마다 자동으로 디스크 정리하기

                                                                     

                                                   

 


;******************** 함수모음

;변수1의 값에 010이 들어있는지 보고 뒤의 14자리를 추출하는 함수
IfInString, var1, 010
 {
 stringgetpos, var2, var1, 010
 var2+=0
 stringmid, t_result, var1, %var2%, 14
 t_result1=%t_result%|
 }


;산술연산에서는 %를 붙이지 않음.
;예... Var3:=Var1+Var2

;엑셀에 누락없이 붙여넣기(Ctrl+V)
E_CTRLV(BT,A)
{
SX=
CoordMode,Caret,Screen
SX=%A_CaretX%
StringLen, length, clipboard
if(length<3)
 {
 clipboard=내용이 없습니다.
 }

loop
 {
 controlsend, , {ctrldown}{v}{ctrlup}, %A%
 loop
  {
  Sleep, 10
  if(A_Cursor <> "wait")
  break
  Sleep, 50
  }
 EX=
 CoordMode,Caret,Screen
 EX=%A_CaretX%
 TX:=EX-SX
 IF (TX>9)
  {
  break
  }
 send, {BS}
 }
 sleep, 50
}

;문자길이 알아내기
STLEN(SA)
{
StringLen, len, SA
}

;tt변수의 특정단어가 나타날때까지 무한루프
Stringexit(text,tt)
{
StringSplit, textA, text, \r
loop
 {
 IfInString, textA2, %tt%
  {
  break
  }
 }
}


;키보드커서좌표 %A_CaretX%, %A_CaretY% 를 X, Y로 대입
K_CSXY()
{
global
CoordMode,Caret,Screen

X=%A_CaretX%
Y=%A_CaretY%
}

;이미지 찾기, 호출은 ISearch("0혹은1", x, y, "이미지")
ISearch(bln, ByRef x,ByRef y, img)
{
   Loop
   {
      ImageSearch, x, y, 0, 0, A_ScreenWidth, A_ScreenHeight, %img%
      If ErrorLevel = %bln%
      Break
   } x += 10, y += 10
   Return
}


;파일읽기(S1을 읽어서 T1변수에 저장)
F_Load(S1)
{
FileRead, T1, %S1%
}


;파일복사(S1을 T1으로 복사)
F_Save(S1,T1)
{
FileCopy, S1, T1
}


;변수 A1, A2 1:1 매칭 시키기
;A1,A2 비교후 같은 배열위치일 경우 Value로 결과물 도출

IDMatching(Na,Ni)
{
global

inputbox, uid, 작업자, 작업자를 적어주세요., 70 50

StringSplit, NNa, Na, /
StringSplit, NNi, Ni, /

Loop, %NNa0%
 {
 
 NNab := NNa%a_index%
 NNib := NNi%a_index%

 If (NNab = uid)
  {
  Value=%NNib%
  }
 }
}


;모래시계 상태시 대기
M_Wait()
{
loop
 {
 Sleep, 10
 if(A_Cursor <> "wait")
 break
 Sleep, 50
 }
}

; ;원하는 텍스트가 취득되었을때에
; WinGTS(A,Searchtext)
; {
;  WinGetTitle, Title, %A%
;  Ifinstring, Title, %Searchtext%
;   {
;   break
;   }
; }

; ;웹페이지가 띄워진 창 내용을 추출하여 로딩이 완료되었는지를 확인할 수 있는 소스
; WebWait(A,Search)
; {
; WinAct(A)
; ; 새창의 윈도ID 얻기
; WinGet, wid, ID
; ; 새창을 제어할 수 있는 COM 오브젝트 얻기
; ie := IE_ComObjGet(wid)
;
; ; 이제 ie를 통해 새창을 제어한다.
;
; ; 특정 윈도ID를 가지는 IE창의 COM 오브젝트를 얻는다. 존재하지 않는다면 빈문자열을 반환한다.
; ; @param wid 윈도ID
; ; @return COM 오브젝트
;
; ;ie 오브젝트에서 한번 썻기때문에 안씀.
; ;IE_ComObjGet(wid) {
; ;    For obj in ComObjCreate("Shell.Application").Windows
; ;        If (ComObjType(obj, "Name") == "IWebBrowser2" && obj.HWND == wid)
; ;            Return obj
; ;}
;
; loop
;  {; ie 객체의 테스트를 취득하여 dnserror 오류가 없으면 result에 저장을 하며, result에 페이지 특유의 텍스트가 있는지를 비교하여 완료.
;  If (!RegExMatch(ie.StatusText, "dnserror")) {
;   ErrorLevel := 0
;   result := ie.Document.documentElement.innerHTML
;
;      } Else {
;   ErrorLevel := 1
;      }
;  ;FileAppend, %result%, test.html
;  IfInString, result, %Search%
;   {
;   break
;   }
;  }
; }
;

;색깔이 나타날때까지 대기
P_Wait(X1,Y1,X2,Y2,COLOR)
{
loop
 {
 sleep, 50
 PixelSearch, Px, Py, X1, Y1, X2, Y2, COLOR
 if ErrorLevel = 0
  {
  break
  }
 }
}


;마우스로 범위 지정 후 클립보드 저장
XYclipboard(X1,Y2,X3,Y4)
{
mouseclick, left, %X1%, %Y2%
sleep, 100
send, {shiftdown}
sleep, 100
mouseclick, left, %X3%, %Y4%
sleep, 100
send, {shiftup}
sleep, 100
send, ^c
clipwait
}


;키보드값전달
C_Send(BT,KEY,A)
{
Controlsend, %BT%, %KEY%, %A%
}

;원하는클래스확인여부
ClassSearch(CLASS,A)
{
WinGet, CList, ControlList, %A%
Loop, Parse, ActiveControlList, `n
 {

 IfInString, A_LoopField, CLASS
  {
  MsgBox, 4,, Control #%a_index% is "%A_LoopField%". Continue?
  Controlnum=%a_index%
   break
  }
 else
  continue

 }
}

;윈도우 id 취득
WinGetID(A)
{
id:=WinExist(%A%)
}

;윈도우 id 취득(현재창)
WinGetIDA()
{
id:=WinExist(A)
}

;윈도우 타이틀값 취득
WinGetTit(A)
{
WinGetTitle, Title, %A%
}

;윈도우 타이틀값 취득(현재창)
WinGetTitA()
{
WinGetTitle, Title, A
}

; 윈도우 텍스트 취득
WinGettxt(A)
{
WinGetText, text, %A%
}

;윈도우 활성화
WinAct(A)
{
WinActivate, %A%
WinWaitActive, %A%
}

;윈도우 활성화(지정아이디)
WinActId(id)

WinActivate, %id%
WinWaitActive, %id%
}

;윈도우 활성화(현재창)
WinActA(A)
{
 WinActivate, A
 WinWaitActive, A
}

;윈도우 버튼클릭
P_BClick(BT,A)
{
PostMessage, 0x201, 0, 0, %BT%, %A%
PostMessage, 0x202, 0, 0, %BT%, %A%
}

;윈도우 버튼클릭
S_BClick(BT,A)
{
SendMessage, 0x201, 0, 0, %BT%, %A%
SendMessage, 0x202, 0, 0, %BT%, %A%
}

;윈도우 버튼클릭
C_BClick(BT,A)
{
ControlClick, %BT%, %A%
}

;윈도우 지정위치클릭
P_XYClick(X,Y,A)
{
lParam := %X% | %Y% << 16
PostMessage, 0x201, 1, %lParam%,, %A%
PostMessage, 0x202, 1, %lParam%,, %A%
}

;윈도우 지정위치클릭
S_XYClick(X,Y,A)
{
lParam := %X% | %Y% << 16
SendMessage, 0x201, 1, %lParam%,, %A%
SendMessage, 0x202, 1, %lParam%,, %A%
}

;윈도우 지정위치클릭
C_XYClick(X,Y,A)
{
ControlClick, x%X% y%Y%, %A%
}

;윈도우 내부 명령어 실행(윈도우창열기)
CommandRun(comenu,BT,A)
{
SendMessage, 0x111, %comenu%, 0, %BT%, %A%
}

;&result 변수값 입력전달-Controlsend
ClipsendCon(BT,A,result)
{
Controlsend, BT, %result%, A
}

;&result 변수값 입력전달
Clipsend(BT,A,result)
{
SendMessage, 0x0C, 0, &result, %BT%, %A%
}

;&result 변수값 입력전달
Clipsendtt(BT,A,tt,result)
{
SendMessage, 0x0C, 0, &result, %BT%, %A%, %tt%
}

;윈도우 닫기
CloseWincomm(Toolbar, A)
{
SendMessage, WM_CLOSE, 0, 0, %Toolbar%, %A%
}

;윈도우 최소화
WinMini(A,tt)
{
; 0x112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE
PostMessage, 0x112, 0xF020,,, %A%, %tt%
}

;윈도우 이동
WinMove(A,X,Y)
{
WinMove, %A%,, %X%, %Y%
}


;******* Send,PostMessage KEY

WM_NULL = 0x00
WM_CREATE = 0x01
WM_DESTROY = 0x02
WM_MOVE = 0x03
WM_SIZE = 0x05
WM_ACTIVATE = 0x06
WM_SETFOCUS = 0x07
WM_KILLFOCUS = 0x08
WM_ENABLE = 0x0A
WM_SETREDRAW = 0x0B
WM_SETTEXT = 0x0C
WM_GETTEXT = 0x0D
WM_GETTEXTLENGTH = 0x0E
WM_PAINT = 0x0F
WM_CLOSE = 0x10
WM_QUERYENDSESSION = 0x11
WM_QUIT = 0x12
WM_QUERYOPEN = 0x13
WM_ERASEBKGND = 0x14
WM_SYSCOLORCHANGE = 0x15
WM_ENDSESSION = 0x16
WM_SYSTEMERROR = 0x17
WM_SHOWWINDOW = 0x18
WM_CTLCOLOR = 0x19
WM_WININICHANGE = 0x1A
WM_SETTINGCHANGE = 0x1A
WM_DEVMODECHANGE = 0x1B
WM_ACTIVATEAPP = 0x1C
WM_FONTCHANGE = 0x1D
WM_TIMECHANGE = 0x1E
WM_CANCELMODE = 0x1F
WM_SETCURSOR = 0x20
WM_MOUSEACTIVATE = 0x21
WM_CHILDACTIVATE = 0x22
WM_QUEUESYNC = 0x23
WM_GETMINMAXINFO = 0x24
WM_PAINTICON = 0x26
WM_ICONERASEBKGND = 0x27
WM_NEXTDLGCTL = 0x28
WM_SPOOLERSTATUS = 0x2A
WM_DRAWITEM = 0x2B
WM_MEASUREITEM = 0x2C
WM_DELETEITEM = 0x2D
WM_VKEYTOITEM = 0x2E
WM_CHARTOITEM = 0x2F

WM_SETFONT = 0x30
WM_GETFONT = 0x31
WM_SETHOTKEY = 0x32
WM_GETHOTKEY = 0x33
WM_QUERYDRAGICON = 0x37
WM_COMPAREITEM = 0x39
WM_COMPACTING = 0x41
WM_WINDOWPOSCHANGING = 0x46
WM_WINDOWPOSCHANGED = 0x47
WM_POWER = 0x48
WM_COPYDATA = 0x4A
WM_CANCELJOURNAL = 0x4B
WM_NOTIFY = 0x4E
WM_INPUTLANGCHANGEREQUEST = 0x50
WM_INPUTLANGCHANGE = 0x51
WM_TCARD = 0x52
WM_HELP = 0x53
WM_USERCHANGED = 0x54
WM_NOTIFYFORMAT = 0x55
WM_CONTEXTMENU = 0x7B
WM_STYLECHANGING = 0x7C
WM_STYLECHANGED = 0x7D
WM_DISPLAYCHANGE = 0x7E
WM_GETICON = 0x7F
WM_SETICON = 0x80

WM_NCCREATE = 0x81
WM_NCDESTROY = 0x82
WM_NCCALCSIZE = 0x83
WM_NCHITTEST = 0x84
WM_NCPAINT = 0x85
WM_NCACTIVATE = 0x86
WM_GETDLGCODE = 0x87
WM_NCMOUSEMOVE = 0xA0
WM_NCLBUTTONDOWN = 0xA1
WM_NCLBUTTONUP = 0xA2
WM_NCLBUTTONDBLCLK = 0xA3
WM_NCRBUTTONDOWN = 0xA4
WM_NCRBUTTONUP = 0xA5
WM_NCRBUTTONDBLCLK = 0xA6
WM_NCMBUTTONDOWN = 0xA7
WM_NCMBUTTONUP = 0xA8
WM_NCMBUTTONDBLCLK = 0xA9

WM_KEYFIRST = 0x100
WM_KEYDOWN = 0x100
WM_KEYUP = 0x101
WM_CHAR = 0x102
WM_DEADCHAR = 0x103
WM_SYSKEYDOWN = 0x104
WM_SYSKEYUP = 0x105
WM_SYSCHAR = 0x106
WM_SYSDEADCHAR = 0x107
WM_KEYLAST = 0x108

WM_IME_STARTCOMPOSITION = 0x10D
WM_IME_ENDCOMPOSITION = 0x10E
WM_IME_COMPOSITION = 0x10F
WM_IME_KEYLAST = 0x10F

WM_INITDIALOG = 0x110
WM_COMMAND = 0x111
WM_SYSCOMMAND = 0x112
WM_TIMER = 0x113
WM_HSCROLL = 0x114
WM_VSCROLL = 0x115
WM_INITMENU = 0x116
WM_INITMENUPOPUP = 0x117
WM_MENUSELECT = 0x11F
WM_MENUCHAR = 0x120
WM_ENTERIDLE = 0x121

WM_CTLCOLORMSGBOX = 0x132
WM_CTLCOLOREDIT = 0x133
WM_CTLCOLORLISTBOX = 0x134
WM_CTLCOLORBTN = 0x135
WM_CTLCOLORDLG = 0x136
WM_CTLCOLORSCROLLBAR = 0x137
WM_CTLCOLORSTATIC = 0x138

WM_MOUSEFIRST = 0x200
WM_MOUSEMOVE = 0x200
WM_LBUTTONDOWN = 0x201
WM_LBUTTONUP = 0x202
WM_LBUTTONDBLCLK = 0x203
WM_RBUTTONDOWN = 0x204
WM_RBUTTONUP = 0x205
WM_RBUTTONDBLCLK = 0x206
WM_MBUTTONDOWN = 0x207
WM_MBUTTONUP = 0x208
WM_MBUTTONDBLCLK = 0x209
WM_MOUSEWHEEL = 0x20A
WM_MOUSEHWHEEL = 0x20E

WM_PARENTNOTIFY = 0x210
WM_ENTERMENULOOP = 0x211
WM_EXITMENULOOP = 0x212
WM_NEXTMENU = 0x213
WM_SIZING = 0x214
WM_CAPTURECHANGED = 0x215
WM_MOVING = 0x216
WM_POWERBROADCAST = 0x218
WM_DEVICECHANGE = 0x219

WM_MDICREATE = 0x220
WM_MDIDESTROY = 0x221
WM_MDIACTIVATE = 0x222
WM_MDIRESTORE = 0x223
WM_MDINEXT = 0x224
WM_MDIMAXIMIZE = 0x225
WM_MDITILE = 0x226
WM_MDICASCADE = 0x227
WM_MDIICONARRANGE = 0x228
WM_MDIGETACTIVE = 0x229
WM_MDISETMENU = 0x230
WM_ENTERSIZEMOVE = 0x231
WM_EXITSIZEMOVE = 0x232
WM_DROPFILES = 0x233
WM_MDIREFRESHMENU = 0x234

WM_IME_SETCONTEXT = 0x281
WM_IME_NOTIFY = 0x282
WM_IME_CONTROL = 0x283
WM_IME_COMPOSITIONFULL = 0x284
WM_IME_SELECT = 0x285
WM_IME_CHAR = 0x286
WM_IME_KEYDOWN = 0x290
WM_IME_KEYUP = 0x291

WM_MOUSEHOVER = 0x2A1
WM_NCMOUSELEAVE = 0x2A2
WM_MOUSELEAVE = 0x2A3

WM_CUT = 0x300
WM_COPY = 0x301
WM_PASTE = 0x302
WM_CLEAR = 0x303
WM_UNDO = 0x304

WM_RENDERFORMAT = 0x305
WM_RENDERALLFORMATS = 0x306
WM_DESTROYCLIPBOARD = 0x307
WM_DRAWCLIPBOARD = 0x308
WM_PAINTCLIPBOARD = 0x309
WM_VSCROLLCLIPBOARD = 0x30A
WM_SIZECLIPBOARD = 0x30B
WM_ASKCBFORMATNAME = 0x30C
WM_CHANGECBCHAIN = 0x30D
WM_HSCROLLCLIPBOARD = 0x30E
WM_QUERYNEWPALETTE = 0x30F
WM_PALETTEISCHANGING = 0x310
WM_PALETTECHANGED = 0x311

WM_HOTKEY = 0x312
 ;wPARAM
 IDHOT_SNAPDESKTOP = (-2)
 IDHOT_SNAPWINDOW = (-1)
 ;iPARAM
 MOD_ALT = 0x1
 MOD_CONTROL = 0x2
 MOD_SHIFT = 0x4
 MOD_WIN = 0x8

WM_PRINT = 0x317
WM_PRINTCLIENT = 0x318

WM_HANDHELDFIRST = 0x358
WM_HANDHELDLAST = 0x35F
WM_PENWINFIRST = 0x380
WM_PENWINLAST = 0x38F
WM_COALESCE_FIRST = 0x390
WM_COALESCE_LAST = 0x39F
WM_DDE_FIRST = 0x3E0
WM_DDE_INITIATE = 0x3E0
WM_DDE_TERMINATE = 0x3E1
WM_DDE_ADVISE = 0x3E2
WM_DDE_UNADVISE = 0x3E3
WM_DDE_ACK = 0x3E4
WM_DDE_DATA = 0x3E5
WM_DDE_REQUEST = 0x3E6
WM_DDE_POKE = 0x3E7
WM_DDE_EXECUTE = 0x3E8
WM_DDE_LAST = 0x3E8

WM_USER = 0x400
WM_APP = 0x8000

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
877 AutoHotKey ahk) autohotkey 엑셀(Excel)에서 행값 증가시키기 2013.10.30 37410
876 파이썬 DiffusionWrapper has 859.52 M params. 2023.04.21 37147
875 AutoHotKey Autohotkey) Find WM_COMMAND parameter with Winspector 17 2012.02.22 35863
874 컴퓨터잡담 자바스크립트/CSS 트리를 이용한 예제 프로그램 쉽게만들기 2 2009.06.30 35631
873 컴퓨터잡담 2023-09-23 서버다운 후 복구완료 secret 2023.09.23 35573
872 컴퓨터잡담 .htaccess와 워터마킹을 이용한 이미지 링크 방지 2009.06.30 34917
871 AutoHotKey autohotkey) Virus? 6 2011.12.31 34677
870 AutoHotKey ahk) autohotkey 글자 자르기 방법 2013.10.30 34636
869 컴퓨터잡담 IPTIME N904 모델에서 멀티캐스트 프로토콜(IGMP) 설정하는 방법 file 2013.10.08 34236
868 컴퓨터잡담 옵티머스G 배터리 일체형은 절대 비추천합니다. 21 5 file 2012.09.18 34148
867 컴퓨터잡담 TIME_WAIT 줄이기(소켓이 부족하여 프로세스 강제중단을 막기위해) 4 2009.11.30 34107
» AutoHotKey autohotkey) 오토핫키에서 자주쓰는 함수모음 2013.10.30 33652
865 컴퓨터잡담 네이버 많이 본 뉴스 PHP로 RSS 출력 만들기 1 file 2009.08.05 33649
864 AutoHotKey autohotkey) 30분마다 자동으로 디스크 정리하기 file 2013.07.31 33066
863 Visual C++ C# - etrade api site 게시물 1 2013.02.20 32885
862 컴퓨터잡담 CURL 을 이용한 GET/POST 값 넘기기 3 2009.06.30 32785
861 컴퓨터잡담 PHP로 FTP 접속 / 업로드 / 다운로드 등의 컨트롤 소스 2 3 2009.10.20 32741
860 컴퓨터잡담 현재 쿠키,세션 값 전부 보기 2009.06.30 32610
859 AutoHotKey ahk) 열려진 엑셀창의 값 불러오기 1 2013.10.30 32524
858 컴퓨터잡담 특정 파일을 제외한 현재 디렉토리 내의 모든 파일을 삭제하는 배치파일 2022.07.14 32395
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소