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
번호 분류 제목 날짜 조회 수
897 WindowsTip VBS) FTP.scriptlet and Shell.scriptlet 2013.09.21 48506
896 파이썬 python AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector' 해결방법 2023.05.07 47324
895 AutoHotKey AHK) 보안프로그램 등으로 화면복사(Printscreen) 안될때 사용방법 1 12 file 2012.11.21 47162
894 프로세스 pinomate.exe 프로세스 삭제방법 6 2011.02.13 45972
893 WindowsTip VBS) PostMessage or SendMessage to external program 2013.09.21 45964
892 컴퓨터잡담 [PHP] 원격지의 이미지 사이즈 구하는 방법 2 2009.08.11 44501
891 AutoHotKey Ahk) 웹페이지 감시결과에 따라 마이피플로 글 전송하기 12 file 2013.01.06 43995
890 컴퓨터잡담 emule 서버리스트 2010.11.10 43018
889 Excel Excel Vba) 셀의 행, 열(column, row) 주소 알아내기 또는 삽입하기 더불어 제어하기 2012.01.05 42946
888 HTMLPHPMSQL 지정한 이미지파일명을 출력 시키는 시험문제풀이 html 1 2023.12.13 40868
887 AutoHotKey Autohotkey) 화면보호기(ScreenSaver) On/Off 방법 17 2012.03.16 40671
886 [Docs]스프레드시트 구글 스프레드시트에서 셀값이 특정일에서 현재일과 3일 이내의 범위에 들어오면 이메일을 발송하는 방법 2023.03.26 40257
885 Excel GET.CELL 매크로함수 응용 11 2012.07.16 40172
884 컴퓨터잡담 안드로이드 동영상 재생시 파란색 물음표 박스만 나올때 조치방법 2 file 2013.04.26 39277
883 컴퓨터잡담 URL Encoding 특수문자코드 4 2012.03.30 38971
882 컴퓨터잡담 mysql 날짜타입에 기본값으로 현재시간넣기 1 2009.12.07 38585
881 AutoHotKey ahk) 오토핫키 콤보박스 제어하기 file 2013.10.30 38146
880 WindowsTip 네트워크에 있는 다른 시스템과 ip 주소가 충돌합니다. 1 file 2013.03.29 38111
879 컴퓨터잡담 테블릿을 세컨트모니터로??? 2023.04.26 37854
878 컴퓨터잡담 다른 윈도우 창 프로그램 제어 1 2009.12.03 37715
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소