티스토리 방명록

댓글쓰기 폼
  • 프로필사진 비밀댓글입니다 2018.02.25 20:14
  • 프로필사진 비밀댓글입니다 2018.01.25 21:11
  • 프로필사진 비밀댓글입니다 2018.01.17 00:18
  • 프로필사진 비밀댓글입니다 2018.01.04 13:03
  • 프로필사진 고구믜 오토핫키 초보인데 도와주세요

    c#에서 만든 DLL을 오토핫키에서 DLLCALL을 이용해서 사용하고싶은데
    아무리 해봐도 되질 않아요..

    c#

    namespace ClassLibrary2
    {
    public class ClassLibrary2
    {
    public int add(int a, int b)
    {
    return a + b;
    }
    }
    }

    AHK

    sf := DllCall("ClassLibrary2.dll\add","int",1,"int",2)

    코드는 이렇게 입력했는데 어디서 잘못된건지 알려주세요.
    부탁드립니다.
    2017.06.08 17:32 신고
  • 프로필사진 비밀댓글입니다 2017.04.05 17:11
  • 프로필사진 PRG com.ahk 에 COM_ActiveXObject()가 없는거같아요.
    L버전에서는 아마도 ComObjCreate 가 기본 내장함수로 있는데 이거 쓰시면 될거같아요. 확인은 안해봤어요.

    psh := ComObjCreate("Shell.Application")
    2017.04.05 20:42 신고
  • 프로필사진 비밀댓글입니다 2017.04.05 23:51
  • 프로필사진 비밀댓글입니다 2017.03.12 02:31
  • 프로필사진 PRG 1. 소스보니깐
    마우스 휠로 할땐 잘 종료됩니다.
    그냥 창닫기 할때 종료 안되는건
    guiclose:
    exitapp 이 없어서 입니다.

    2. 자고나서 내일 보고 답변해드리겠습니다.

    3. font는 system font 입니다. ( 오토핫키에서 제공하는 font table)
    아무튼 사용자 font는 적용 안됩니다.
    그래서 dllcall을 이용해서 적용해야됩니다.

    구글에 autohotkey custom font 라고 검색해보시면 될거같습니다.
    못찾으시면 내일 답변할때 같이 소스 달아놀게요.
    2017.03.12 03:05 신고
  • 프로필사진 비밀댓글입니다 2017.03.12 04:14
  • 프로필사진 PRG 2. 보니깐 경로를 가상화한다는게 메모리에 파일을 올려둔다는 뜻인거같네요. 이게 왜 경로를 가상화한거냐면 설치한 경로를 A라하면 A는 오로지 오토핫키 프로그램 메모리 위에 있지만
    다운받은 A라는 경로로 메모리를 참조? 할수있어서 그렇게 부르는거 같아요.
    그리고 dll은 못합치는거로 압니다.
    dll 이나 lib는 호출해야 의미가 있는거라 파일합치기로 합쳐봐야 실행안되요
    2017.03.12 15:23 신고
  • 프로필사진 PRG 핵심은 이겁니다.
    하드디스크에 저장이아닌
    램에 저장 ( 메모리위에 저장)
    2017.03.12 15:26 신고
  • 프로필사진 비밀댓글입니다 2017.03.12 17:48
  • 프로필사진 PRG dll은 그냥 별게아니고
    함수 저장소라고 생각하시면 되요.
    dll파일에 함수들을 때려 박아넣어논거죠.

    dll파일이나 lib파일은 성능향상을 위해 쓰이는 경우가 많기 때문에 C로 dll파일을 구현하면 좋죠.

    그리고 오토핫키에서 lib파일을 쓸수있는지는 모르겠는데
    dll파일에 비해 lib파일이 빠릅니다.
    대신 lib파일은 메모리에 붙어있는 놈이기때문에 프로그램이 커져서 부담될수 있고 dll은 함수가끝나면 메모리에서 사라집니다.
    2017.03.12 18:06 신고
  • 프로필사진 비밀댓글입니다 2017.03.12 18:34
  • 프로필사진 비밀댓글입니다 2017.03.08 16:03
  • 프로필사진 PRG 1. 오토핫키에 class 기능이 생겼더라고요. class 로 묶어서 관리하면 깔끔해서 보기 좋을거같네요. 지금 방식대로 가는거랑 별 차이 없을거같아요. 나중에 소스 수정할때는 class 쓰는 편이 편하겠네요. 또, timer의 경우 text 내용만 다르지 기능은 똑같으니깐
    타이머 기능하나만 쓰고 text 처리는
    case를 나눠서 처리하면 되겠네요.
    case 나눌 변수 하나 만드셔서 처리하시면 될거같아요.

    2. text에 폭이 정해지지않았습니다.
    그렇다면 폭은 a 만큼의 길이 일거에요.
    그니깐 hello로 바뀌었지만 텍스트 길이가 짧아서 h만 보이는 거에요.

    3. 제가 잘못알고 있었더라고요.
    Edit 같이 변경 가능한 ( 사용자가 입력 가능한 ) control 에 대해서만 gui,submit,nohide로 v라벨에 값을 받아올수 있고 그렇지 않은 경우 ( Text, GroupBox 등) 는 GuiControlGet,OutputVar,,Text (Text는 v라벨) 로 받아와야 되네요.
    글 수정해놓겠습니다.

    4. 저도 어느부분에서 오류인지 모르겠네요. 변수값이 남아있어서 그런거같지는 않습니다.

    5. 옵션같은게 있는지는 잘 모르겠고요.
    저는 그냥 어느 언어에서든
    gui의 가로폭을 w라고 하고 text의 가로폭을 t라고 할때
    text의 x 를 (w-t)/2 로 해주면 됩니다.
    그림 그려보시거나 머리속으로 상상해보시면 될거에요.

    헬프파일 찾아보니깐 -SysMenu 쓰면 됩니다.
    2017.03.08 19:33 신고
  • 프로필사진 chikorita 아무래도 reload를 쓰다보니 새위치에가는것과 리로드될때마다 활성화가 되는게 불편해서 머리좀굴려봐야겠네요ㅠ 매번 답변 너무 잘해주셔서 감사합니다 좋은저녁되세요 2017.03.08 20:05 신고
  • 프로필사진 비밀댓글입니다 2017.03.08 16:02
  • 프로필사진 비밀댓글입니다 2017.03.06 09:58
  • 프로필사진 PRG 아 그리고
    다른 사람의 프로그램을 모방하는거 역시 실력ㅇ늘리기엔 제일 좋아요.
    2017.03.06 15:35 신고
  • 프로필사진 비밀댓글입니다 2017.03.06 21:46
  • 프로필사진 PRG 헬프파일은
    시작 - 모든프로그램 - Autohoteky 에 있는 Autohotkey Help File 을 말하는거에요.
    오토핫키 사이트에서 일일이 찾아되는걸 다 색인 시켜놔서 관련 검색어로 검색만 해도 쉽게 볼수 있어요.

    GuiControlGet 만 보면
    GuiControlGet, OutputVar [, Sub-command, ControlID, Param4]
    [ ] 로 되어있는부분은 선택 부분이고 그렇지 않은 부분은 필수로 적어야 되는 부분입니다.
    OutputVar는 무조건 적어 넣어야 되는거고 뒤에거는
    GuiControlGet,OutputVar,Sub-Command,ControlID 또는
    GuiControlGet,OutputVar,,ControlID 이렇게요.
    근데 GuiControlGet 을 쓰는거보단
    시작 부분에 gui,submit,nohide 로 control 값들 다 받아오시는게 편할거에요.

    ex)

    gui, ...
    gui,Add,Text,x0 y0 h100 w100 v내용,Edit
    ...
    ...

    return

    F1::
    gui,submit,nohide
    msgbox,% 내용


    2017.03.06 21:55 신고
  • 프로필사진 비밀댓글입니다 2017.03.06 23:19