오토핫키 커뮤니티

질문
2015.04.21 16:16

FileInstall 관련 질문

USW
조회 수 950 추천 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
분류 제목 글쓴이 최근변경 추천
질문 자기자신말고 다른오토핫키프로그램 모두종료 3 _Crash 2015.04.24 0/0
질문 비활성 이미지 클릭 질문입니다 2 시원짱 2015.04.23 0/0
질문 모바게님 이미지서칭함수 오차율 질문 7 pervm 2015.04.22 0/0
질문 다시한번 질문드릴게요. 가상화관련 4 USW 2015.04.23 0/0
질문 FileInstall 관련 질문 41 USW 2016.10.29 0/0
질문 지니 이용한 쿠키런 매크로있으신분... 2 댕고링 2015.04.23 0/0
질문 오토핫키 명령어 질문 6 papepo 2015.04.21 0/0
질문 gui창 2개 중 1번 gui창에서 확인하면 닫아지면서 2번 ... 7 Rabbit 2015.04.21 0/0
질문 Shell.Explorer 새로고침? 13 _Crash 2015.04.21 0/0
질문 구이 스크립트 잘못된 부분 질문드립니다 3 푸른호수 2015.04.21 0/0
질문 구이실행시 정지 질문드립니다. 3 푸른호수 2015.04.20 0/0
질문 오토핫키 질문입니다. 3 anahen 2015.04.20 0/0
질문 gdip에 대해 궁금한데요. 13 우후훅 2015.04.27 0/0
질문 reload 관련 자료 찾아보아도 나오지 않아 질문드립니다. 13 프로도신 2015.04.20 0/0
질문 세나 매크로 만드는중인데요 6 똬똬 2015.05.09 1/0
질문 Ctrl + Click or Ctrl + wheel 가르쳐 주세요. 7 theruin 2015.04.20 0/0
질문 구현가능한지 질문드려요. 15 흑콘 2015.04.20 0/0
자유 시간지정해서 그시간이 되면 매크로가 동작되게 하고 ... 11 지니블렉션 2015.04.20 0/0
질문 FTP 실시간 파일다운로드 질문 5 _Crash 2015.04.20 1/0
정보 Array 확장 13 모바게 2015.07.16 3/0
Board Pagination Prev 1 ... 171172173174175176177178179 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글