이래저래 해보는데 잘 안되네요.
예를들어 , 가상화로 이미지파일인 test.jpg를 넣어두고 ,
hModule := DllCall("LoadLibrary", str, A_ScriptDir "\bxsdk32.dll")
DllCall("bxsdk32\BoxedAppSDK_Init")
DllCall("bxsdk32\BoxedAppSDK_CreateVirtualDirectoryA", AStr, A_Temp, Int, 0)
보다시피 가상화경로는 %A_Temp% 인데요.
이것을 윈도우 자체에 내장된 그림판(mspaint.exe) 같은걸로? 불러올경우
runwait, mspaint.exe %A_Temp%\\test.jpg
이런식으로 불러올경우 , 그림판에서는 가상화된 경로를 인식하지못하는것 같습니다.
결국 , mspaint.exe 어플 역시 가상화내에 넣어둬야 되는거 같아요.
제가 하는것은 cmd로 exe파일을 로딩해서 작업하는것인데요.
runwait, %comspec% /c %A_Temp%\test.exe
라고 할경우 exe파일을 cmd에서 못찾습니다.
cmd.exe를 가상화에 넣어두고 , runwait, %A_Temp%\cmd.exe /c %A_Temp%\test.exe 이런식으로하면
되기는합니다. 근데 이런경우 윈도우버전이 다르다거나 해서 cmd.exe 버전문제도 있고 , pe에서는 안되는것 같네요
뭔가 제가 잘못 아는 부분이 있는것 같은데요.
원래 윈도우 내장어플로는 가상화내의 파일을 못불러오는게 맞나요?
그리고 가상화 이외에 파일자체 패킹해서? 내장된 파일들을 외부노출없이 할수 있는방법이 또 있는지요.
가상화 영역과 실제영역은 완전히 분리됐다고 보는게 맞을거같네요.
그렇게 생각하면 가상화 영역에 파일을 불러오는 어플리케이션도 가상화가되있어야할거같고요.