매크로

질문
2015.04.21 16:16

FileInstall 관련 질문

USW
조회 수 944 추천 0 댓글 41

SetWorkingDir %A_ScriptDir%

FileInstall, 1.bmp, %A_ScriptDir%\image\1.bmp, 1


제가 현재 1.bmp 파일을 프로그램안에 내장하려고 하는데요.

문제는 위처럼 파일인스톨을 사용하면 된다고 알고있습니다.


일단,?%A_ScriptDir%1.bmp 일때는 실행한 exe파일이 있는곳에 1.bmp이 만들어지는데요

문제는?%A_ScriptDir%\image\1.bmp 를 사용하게되면 실행되고있는 exe파일이 있는곳에 image라는 폴더가

없어서 그런가 1.bmp라는 파일이 설치가 안되더라구요...


제가 원하는것은 exe파일을 실행했을때 그곳에 image폴더가 없다면 image폴더를 만들고 그 안에 1.bmp를

설치하게 만들고 싶은데... 어떻게하면 좋을까요?


(나중에 가상화도 같이 하려고 해서 그럽니다...부탁드립니다^ㅡ^;)



  • 속쓰리다 2015.04.21 16:31

    FileCreateDir,%A_scriptDir%\image

    이거 추가 하시면 될듯

  • USW 2015.04.21 16:54
    일단 참고해보겠습니다. 감사합니다.
  • 우후훅 2015.04.21 16:44

    FileInstall, %A_ScriptDir%\image\1.bmp, %A_ScriptDir%\image\1.bmp, 1 하면 되지 않나요?

    안해봤네요 비슷하게 하면될듯요

  • USW 2015.04.21 16:50

    일단 FileInstall 다음에 %A_ScriptDir%이거 붙이면 일단 안되는게
    Syntax error 뜨네요

  • 우후훅 2015.04.21 17:05
    그럼 그냥 그거 빼고 image\1.bmp 해보세요
  • USW 2015.04.21 17:07

    @우후훅

    내 일단은 지금 파일인스톨은 잘됩니다..

    문제는 가상화가 안되고 있습니다 .ㅜㅡㅜ

    DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", Astr, A_ScriptDir "\image", int, 0)

    이렇게 폴더경로를 지정해주었는데 폴더가 없어지지않고 그대로 있습니다...

  • profile
    외치기 2015.04.21 18:01

    다 사용하고나면 해제 해주셔야죠....

    http://tailstar.net/autohotkey_lecture/3473877

    밑에 가상화 종료 참고하세요.

  • USW 2015.04.21 18:06
    @외치기
    그말이 아니라.....
    제가 이해하는 가상화는 exe파일 안에 이미지파일들을 넣어놓고 나중에 설치할때 폴더안에다가
    설치를 하는데 그 폴더가 안보이도록 하는걸로알고있는데 보여서 하는 질문이었습니다...
  • profile
    외치기 2015.04.21 18:14
    가상화 폴더를 만들고 거기에 파일을 설치하고 가상화를 해제하면
    폴더는 여전히 보이지만 파일은 사라질텐데요.
    실행하는 과정에서도 파일이 보이지 않기를 원한다면 바이너리화해서 소스코드에 포함시키셔야할거에요.
  • USW 2015.04.21 18:30

    @외치기


    다시 질문을 정리하자면,


    exe를 실행시 image폴더가 만들어지고 그안에 이미지파일들이 저장됩니다.

    폴더안에 이미지파일들을 보이게 하지 않기 위해서 가상화를 하는데, 이때 가상화코드에서 폴더경로를 써줍니다.

    1. DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", AStr, A_ScriptDir "\image", int, 0)

    ? ?저렇게 폴더경로를 쓰는것이 맞는지 요?

    2. 1번이 맞다면, 폴더는 있더라도 폴더안에 이미지파일들이 없어야되는데 보입니다....


    처음에 순서가, dll파일 구동하고 가상화할 폴더경로 설정해주고 그 폴더에 이미지파일 install 하는것 아닌가요?

    가상화 해제는 뭐 앱이 종료된다음에 하는거 맞지요?

  • profile
    외치기 2015.04.22 08:52
    순서가
    1. 폴더가상화
    2. 파일 인스톨
    3. 가상화 종료
    4. 어플리케이션 종료입니다.
    어플리케이션을 종료한다고 가상화가 풀리진 않을거에요.
  • USW 2015.04.22 14:45
    알려주신 순서대로 다시 한번 진행해보겠습니다.
  • USW 2015.04.23 00:20
    아니되옵니다ㅜㅡㅜ 되질 않사옵니다 흑흑
  • profile
    외치기 2015.04.23 09:46
    어떻게 안된다는건지 모르겠네요
  • USW 2015.04.23 12:17
    그러니깐....폴더가 만들어지고 이미지가 그 안에 생기게되는데요

    문제는 이미지가 가상화되면 없어져야되는데 안없어진다는겁니다.....
  • profile
    외치기 2015.04.23 12:25

    무슨소리에요 가상화를 해제하면 사라지는거지
    그전에는 안사라져요.

    예지력님 강좌 좀 더 자세히 읽어보세요.

  • USW 2015.04.23 12:29
    예지력님 글쓴거에서 댓글보면

    hModule := DllCall("LoadLibrary", str, A_ScriptDir "\bxsdk32.dll") ; DLL파일을 불러온다
    DllCall("bxsdk32\BoxedAppSDK_Init") ; DLL파일을 시작한다
    DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", AStr, A_Temp, Int, 0) ; 윈도우 임시폴더를 가상화
    FileInstall, test.txt, %A_Temp%\test.txt, 1 ; 임시폴더에 test.txt 파일을 설치
    Run, %A_Temp%\test.txt ; 임시폴더의 test.txt 파일 실행
    return

    실제로 윈도우임시폴더에 가보면 test.txt를 찾아볼수없습니다

    위의 코드만으로 찾아볼수가없다고 되어있는데, 가상화를해놓고 해제를 시켜줘야 안보인다는 말씀인가요
    저 진짜 제대로 보고 안되서 물어보는거거든요...ㅜㅜ
  • profile
    외치기 2015.04.23 13:04
    그렇다면 폴더경로를 잘못적으셔서 가상화가 안된거 아닐까요?
  • USW 2015.04.23 13:11
    제가 적은 폴더경로인데....이게 안틀린것같은데 말이죠....

    A_ScriptDir "\image"

    현재 exe파일이 실행되고 있는곳에 있는 image폴더 를 가리키는데 틀린건가요???
  • USW 2015.04.23 13:13

    제가 다음글에 질문으로 게시해놨던 내용들입니다.

    hModule:=DllCall("LoadLibrary", str, A_ScriptDir "\bxsdk32.dll")
    DllCall("bxsdk32\BoxedAppSDK_Init")
    DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", AStr, A_ScriptDir "\image", int, 0)
    FileInstall, image\0.bmp, %A_scriptDir%\image\0.bmp, 1


    3번째 코드에서 폴더경로만 추가해준것입니다. 예지력님 글을 보고

  • profile
    외치기 2015.04.23 13:22
    잠시만요 파일이 보인다 그거죠?
    원래 파일 위치가 Image\0.bmp고
    가상화 경도로 Image\0.bmp라면
    가상화한 파일은 가상화 되있고 원래 기존의 이미지파일이 보이시는거 아닌가요?
  • USW 2015.04.23 13:25
    fileinstall을 사용해 소스를 컴파일해서 exe로 만들때 안에 이미지파일들을 내장시키구요

    그 exe파일들을 이제 다른 빈폴더로 가지고 와서 실행하게되면 image폴더가 만들어지고

    이미지들이 그 폴더안으로 들어가게되요. 여기까지가 fileinstall로 가능한부분이 잖아요??

    근데 여기서 더 추가해서 가상화를 통해서 만들어진 image폴더안에 이미지를 안보이게
    하고싶은데... 보여서 지금 제가 곤란해하고 있습니다....

    혹시 코드 순서때문인지 아닌지해서 여러번 바꿔봤는데 안되서...계속 문의드립니다 죄송해요!
  • profile
    외치기 2015.04.23 13:23
    hModule := DllCall("LoadLibrary", str, A_ScriptDir "\bxsdk32.dll") ; DLL파일을 불러온다
    DllCall("bxsdk32\BoxedAppSDK_Init") ; DLL파일을 시작한다
    DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", AStr, A_ScriptDir "\image", Int, 0) ; 윈도우 임시폴더를 가상화
    FileInstall, ahk2.jpg, image\ahk2.jpg, 1 ; 임시폴더에 test.txt 파일을 설치
    Gui, Add, Text,, Picture below is 'Test.jpg' which is just installed
    Gui, Add, Picture, x0 y30 w500 h500, image\ahk2.jpg
    Gui, Show,, FileInstall Virtualization
    return

    제가 방금테스트해본 스크립트 입니다. 예지력님 블로그에서 가져와서 제 환경에 맞게 경로수정한것입니다.
  • USW 2015.04.23 13:31
    아 추가적으로 빈폴더에 image폴더가 없을때 폴더를생성하기위해서 FileCreateDir,%A_scriptDir%\image
    를 사용하였습니다.

    이걸해주지않으면, 빈폴더에서 image폴더가 없어서 이미지파일이 인스톨이 안되더라구요...
    (가상화부분의 코드를 당연히 제거함.)
  • profile
    외치기 2015.04.23 13:35
    결론적으로 아무것도 없는 빈폴더에서 이미 컴파일된 프로그램을 실했는데 이미지가 보인다 이건가요?
  • USW 2015.04.23 13:47

    최종적으로 정리해서 말씀드리자면,

    exe파일(이미지가 들어가 있고, 이미지를 설치할 폴더가 없다면 폴더를 생성해주는 코드, 가상화코드)

    이 exe파일을 바탕화면에다가 아무 빈폴더를 만들고 그 안에서 실행을 하게되면

    빈폴더에서 exe가 실행된거라서 안에는 image폴더가없으므로 image폴더를 만들고 그 안에다가 이미지파일
    들을 인스톨하고 그 이미지파일들이 저장된 image폴더를 가상화해서 이미지파일들을 안보이게 하는게
    제 목적인데 폴더에 들어가보면 이미지가파일들이 "나 여기있어요!" 라고 말하고 있습니다...(보임 ㅜㅡㅜ)

  • profile
    외치기 2015.04.23 14:20
    image폴더를 만들고 그 안에다가 이미지파일들을 인스톨하고

    이부분이 문제인거같네요. 아직 가상화되지 않은 폴더에 이미지를 설치하셨으니

    이미지들이 나여기있어요 하는거죠.
  • USW 2015.04.24 00:28
    가상화를 먼저하고 인스톨 했어요....
  • profile
    외치기 2015.04.23 13:39

    https://drive.google.com/file/d/0B_HnhijhzIWoZUZXRDFNQWNFUGc/view?usp=sharing

    여기에 제가 사용한 코드와 이미지가 들어있습니다.

    이걸로 테스트 해보시겠어요?

    실행해보시면 Image폴더안에 아무 파일도 없지만 GUI에는 이미지가 표시됩니다.

  • USW 2015.04.24 00:57
    제가 파일을 다운받아서 관리자권한으로 스크립트를 실행해봤는데...image폴더안에 이미지가 생기네요...

    이거...오토핫키L버전인데... 왜 저는 가상화가안될까요...
  • profile
    외치기 2015.04.24 09:03
    확인결과 64비트 오토핫키에서 적용되지 않네요.
    생각해보면 dll자체가 32비트였네요.
    Unicode64쓰고계신거같은데 32로 교체하세요.
  • USW 2015.04.24 13:04

    제가 잘몰라서그러는데 Unicode64랑 32랑 어떤차이가인가요

    32bit 64bit의 속도 차이 이런건가요 아니면 단순한 뭐 그런가요..

    매번 물어보기만하고 항상 고맙습니다 ㅋ


    P.S 그 컴퓨터의 환경에 상관없이 동작하도록 만들고 싶습니다. 그러니깐 32bit던 64bit던 상관없이 말이죠!!

  • profile
    외치기 2015.04.24 13:08
    운영체제의 차이입니다.
    64비트환경에서 개발한 프로그램은 32에서 작동하지 않습니다.
    그렇기때문에 어느 버전에서든 작동하고싶다면
    32비트에서 개발해야겠지요.
  • USW 2015.04.24 13:11
    제가 컴파일할때 64bit환경이라서 그런지 64bit로 되더라구요..32bit로 바꾸어서 컴파일하려면
    어떻게해야되나요
  • profile
    외치기 2015.04.24 13:51
    오토핫키 설치할때 선택할 수 있어요.
  • USW 2015.04.24 14:00
    제가 L버전쓰고있는데, 설치폴더가서보니깐 ahktoexe.exe를 실행하면 고를수 있더라구요..

    그래서 해결했습니다.. 32bit로 만드니깐 용량이 줄어들긴하네요..

    근데 64bit에서 잘 돌아가던 코드가 32bit에서 컴파일하고 돌리니깐 느려지는데...하...미치겠네요 ㅋ
  • profile
    외치기 2015.04.24 14:44
    64비트랑 32비트랑 가용할수있는 메모리가 달라서그래요.
  • USW 2015.04.24 13:31
    이제 제가 해보겠습니다. 더이상 귀찮게 질문하지않을게요 ..ㅋㅋㅋㅋ

    찾아보고 정말 모를때 질문할게요!! 감사합니다 답변 계속해주셔서
  • profile
    외치기 2015.04.24 13:52
    아는건 답변해주고 모르는건 흥미로우면 찾아서 답변해주고 그런재미로 테일스타 활동해요 ㅋㅋ
  • 휘파람 2016.10.29 03:39
    저도 궁금했던 부분인데, 외치기님의 1년전 답변이 지금 또 도움이되네요. 감사합니다!!
  • 휘파람 2016.10.29 03:37

    1년이나 전 의 댓글들이지만, 두 분의 대화에서 많은 걸 배울수 있어서 좋았습니다!

    이 댓글을 언제 보실지 모르겠지만, 두 분 모두께 감사드립니다!


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 postmessage와 마우스커서 관련해서 질문드립니다 4 유니윤 2019.07.17 0/0
질문 Postmessage가 작동을 안합니다 3 샌드위치 2019.07.30 0/0
질문 imagesearch를 사용하여 이미지 검색 후 리턴되는 좌표... 11 빨간딱지 2019.07.15 0/0
질문 오핫 제작자 (거상) 1 도깡 2019.08.09 0/0
자유 거상 오토핫키 제작자구합니다 10 도깡 2019.10.14 0/0
질문 게임 세이브로드 프로그램을만드려는데, 경로지정방법? 2 깁민 2019.07.15 0/0
질문 IF 명령어 ERRORLEVEL 조건이 먹히질 않습니다 2 오도핫키 2019.07.15 0/0
질문 셋타이머 말고 loop문으로만 할 수 없나요? 3 구글리스트 2019.07.19 0/0
질문 더블클릭을 명령어로 설정할 수 있나요?? 2 오도핫키 2019.07.17 0/0
질문 이미지서치 처음에 못찾는 경우 wngo 2019.07.16 0/0
질문 함수에 오류나는데 무슨 뜻인가요 ?? 1 wngo 2019.07.18 0/0
질문 오토핫키 질문 3 크린이 2019.07.21 0/0
질문 적용하기 어렵네요 질문드려요^^ 4 깜보1004 2019.08.01 0/0
질문 컨트롤클릭을 해도 비활성 상태에서 명령을 실행하지 ... 2 오도핫키 2019.07.22 0/0
자유 던파 토탈소환사용 매크로구매하실분 9 slf 2020.04.13 0/0
질문 오토핫키로 출석체크를 하려고 하는데 검색해도 마땅히... 2 whaste 2019.07.29 0/0
질문 리드메모리쪽으로 도전 해볼려고 합니다 3 슬러그 2019.09.29 0/0
질문 카카오토 써보신분 계신가요??(이미지서치에 관해서) 3 wngo 2019.07.29 0/0
질문 전에 질문 했던 내용을 다시 한번 문의드립니다. 1 헐키 2019.07.29 0/0
자유 디코에서 오핫 같이 공부해요~ ogib 2019.07.29 0/0
Board Pagination Prev 1 ... 170171172173174175176177178 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글