본문 바로가기

DllCall5

Autohotkey path join 방법 DllCall PathCombine 사용 프로그래밍 언어를 사용하여 파일의 path 를 다루는 경우 path 를 합치고 분리하고 하는 과정은 매우 흔한 일입니다. 일단 Autohotkey 를 사용하여 path를 나누는 경우는 SplitPath 라는 명령어를 사용하면 됩니다. 그런데 합치는 경우에는 딱히 전용 함수가 없어서 그냥 string 을 붙여서 만들어야 합니다. 물론 string 을 붙여넣는것도 괜찮지만 잡스러운 처리가 필요한 경우들이 종종 있습니다. 예를 들어 아래 두개의 path 를 그냥 붙이게 된다면~ base := A_WinDir . "\System32\"rel := "..\Media\test.wav"fullpath := base . rel ; string 붙이기 아래와 같이 표시가 될 것 입니다. 보시다시피 그냥 문자 붙이기 이므.. 2019. 7. 13.
Autohotkey 어떤 버전을 설치 해야 하나… Autohotkey 를 사용한지는 꽤 오래 된것 같고 저는 보통 Autohotkey 를 설치할때 recommend 버전인 unicode 32 비트를 설치하곤 합니다. 그런데 최근에 Autohotkey dllcall 을 사용하여 msvcrt.dll 의 _i64toa 함수를 사용하다 보니 제가 설치한 unicode 32-bits Autohotkey 에서는 정상적으로 동작을 하지 않더군요. _i64toa 함수는 radix 를 변환하는 함수이고 보통 2 진수, 8 진수, 16 진수 등으로 변환하는데 사용하곤 합니다. _i64toa 함수의 사용 예는 아래와 같습니다. 아래 예는 숫자 15를 16진수(Hexa) 값으로 변환하는 예인데~ decNumber := 15radix := 16VarSetCapacity(kk,.. 2019. 1. 10.
Autohotkey Windows 한/영 상태 확인 Autohotkey 를 사용하여 영문 Send 를 할 때~ 한/영 자판의 상태에 따라 영문이 들어가기도 하고 한글이 들어가기도 합니다. 재수 좋게 영문으로 되어 있는 상태에서 send 를 한다면 정상적으로 동작하겠지만 한글로 된 상태에서 send 를 한다면 한글로 이상하게 들어가는 경우가 발생을 합니다. 예를 들어 아래 명령어를 메모장과 같은 에디터에서 한글 상태에서 실행한다면~ "며새ㅙ사됴" 로 나오게 될 겁니다. Send, Autohotkey Autohotkey 를 사용하여 한영 자판에 상태를 확인할 수 있는 방법을 검색 하다 보니 아래 주소에 그 해결 방법이 나오더군요. http://www.autohotkey.co.kr/cgi/board.php?bo_table=qna&wr_id=20839 역시나 내.. 2016. 10. 17.
Autohotkey 32, 64 비트 구분하기 Autohotkey 를 사용하다 보면 코드 내에서 현재 사용하는 시스템이 32 비트 인지 또는 64 비트인지를 구별해야 하는 경우가 종종 발생합니다. 예를 들면 Windows 64비트에서는 32 비트용 프로그램들이 Program Files (x86) 에 설치가 되곤 합니다. 하지만 32비트 운영체제에서는 Program Files 폴더에 설치가 되죠. 따라서 하나의 코드를 32비트와 64 비트에서 동시에 사용하기 위해서는 해당 시스템이 32비트인지 64 비트인지를 구분해야 하는 것입니다. 이에 대한 방법은 아래 포스팅에서 소개했던 ~ http://iamaman.tistory.com/1461 IsWow64Process() 함수를 사용하면 됩니다. IsWow64Process() 함수는 64비트이면 1을 그렇지.. 2015. 1. 18.
Autohotkey 로 윈도우 시간표시 숨기기 윈도우 작업표시줄에는 시간이 나오는데 시간을 표시하거나 숨기는 방법이 있어서 소개하려 한다. 아래 주소에서 위에서 소개한 동작을 구현한 코드를 발결할 수 있었다. http://www.autohotkey.com/board/topic/70770-win7-taskbar-clock-toggle/ 코드는 다음과 같다. #CapsLock:: ControlGet, hClock, Hwnd,, TrayClockWClass1, ahk_class Shell_TrayWnd hShell := DllCall("GetAncestor", "UInt", hClock, "UInt", 2) ; GA_ROOT while GetKeyState("LWin") { WinShow, ahk_id %hClock% DllCall("SendMessage.. 2014. 9. 9.