태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바


2009-03-16 벌커덕스

 

어느날 문득 Thinapp로 만들어진 한글뷰어를 사용하다가 백신프로그램에서 덜컥 뷰어.exe를 바이러스로 의심된다며 지워버렸다.

 

필자는 thinapp 빌드시 항상 cmd.exe 를 메인컨테이너로 사용하고 별도의 실행 exe를 뽑아서 실제환경에 확장자를 등록해서 사용하곤 한다.

물론 단일파일환경을 좋아하는 유저도 있겠지만 유독 thinapp사용시 cmd.exe를 기본으로 만들어 가상환경내 다른일(?)을 할 경우도 있다는 생각에 exe를 두개로 만들어 사용하곤 했다.

 

그러다보니 위처럼 로더exe가 날라갈경우 cmd.exe 를 통해 가상환경을 들어가서 가상환경내의 exe를 실행하면 해당 프로그램을 다시 구동할수 있으나 확장자 등록해놓은 것은 무용지물이 되고 만다..

 

그래서 별도의 로더를 만들었다.

Vstart.exe 라는 프로그램인데 이 프로그램의 역할은 ini파일의 데이터를 읽어와서 그 안에 지정된 프로그램만 구동시켜준다. 물론 뷰어같은곳에도 적용할수 있도록 명령줄 파라메터를 인식하여 전달해준다.

 

일단 vstart.exe 만 thinapp로 빌드한다.

필요한 파일은 다음과 같다.

Build.bat

빌드하는 배치파일

Package.ini

빌드환경설정 내용은 아래와 같다.

 

[Compression]

CompressionType=fast

 

[Isolation]

DirectoryIsolationMode=WriteCopy

 

[BuildOptions]

SandboxPath=.

AccessDeniedMsg=You are not currently authorized to run this application. Please contact your Administrator.

SuggestedName= vStart

OutDir=bin

 

SandboxName=vStart

InventoryName=vStart

VirtualDrives=Drive=c, Serial=d43611c1, Type=FIXED

 

[vStart.exe]

ReadOnlyData=bin\Package.ro.tvr

Source=%Drive_C%\vstart.exe

HKEY_CURRENT_USER.txt 

메모장에서 유니코드타입으로 아무런 내용 없이 저장한다.

저장후 파일크기는 2바이트이다. (유니코드 헤더만 저장)

HKEY_LOCAL_MACHINE.txt 

상동

HKEY_USERS.txt 

상동

%Drive_C%\vstart.exe

하위에 %drive_C%라는 폴더를 만들고 그안에 vstart.exe 복사한다.

 

필요한 파일은 이것으로 끝이다.. thinapp는 필수 프로그램이기에 검색사이트에서 찾아보면 된다.

이후 build.bat 를 실행해서 빌드를 수행하면 약 500K의 vstart.exe 파일이 생긴다..

 

이것으로 준비끝..

이제 500K짜리 vstart.exe 를 새폴더를 만들고 복사해두자..

 

최초 프로그램을 실행하면

와 같은 명령표시줄만 나타낸다.. 이창을 닫고 복사해둔 폴더로 가보면 못보던 폴더가 생성되어 있는 것을 볼수있다.

추후 프로그램을 설치하고 작업을 진행해도 그 폴더안에 저장되기 때문에 그때그때 확인해볼 수 있다.

 

이후 입맛에 맞게 변형해서 사용하면 된다.

 

샌드박스를 이용하여 사용하는 방식은 두가지..

 

첫째는 새로운 프로그램을 설치해서 사용하는 방법과

둘째는 기존에 쓰던 프로그램을 그냥 쓰는 방법이 그것이다.

이때 vstart.ini 라는 파일을 만들어서 같은경로에 저장해두자.

 

Vstart.ini 의 내용은 다음과 같다.

 

[config]

run="C:\Program Files\HNC\HOfficeViewer70\HncViewer70\HncView.exe"

 

일반적인 ini 파일이므로 run= 뒤에 사용할 프로그램의 절대경로를 적어두면 된다.

물론 이것은 가상환경내의 파일을 지정 할 수도 있고 (첫째방법)

기존에 쓰던 프로그램을 지정할 수도 있다. (둘째방법)

 

가령 기존에 쓰던 토탈커맨더를 샌드박스를 이용해 사용하려면

Run="d:\Win-Util\Wincmd\TOTALCMD.EXE" 라고 지정하면 되고.

 

한글뷰어를 설치해서 쓰려면 그냥 명령창만 띄운뒤 셋업을 하고나서

run="C:\Program Files\HNC\HOfficeViewer70\HncViewer70\HncView.exe"

라고 지정해서 쓰면 된다.

 

이때 확장자 연결을 해두려면 그냥 hwp 파일을 vstart.exe로 연결해버리면 끝..

 

그 밖에도 많은 활용이 가능하다..




빌드전 vstart.exe 는


이고 VC2003 으로 컴파일 하였다.

소스는 몇줄 안된다. 매우 간단하다.


자작하려면 한가지 참고할것은 ShellExecute는 가상환경에서 안돌아가고  WinExec를 사용해야한다...

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 벌커덕스
TAG
한도 0

도깨비뉴스. http://www.dkbnews.com/?mn=news&mode=read&nidx=8262&dom=8...

Unity3D 일일 자동 빌드 하기

현재 프로젝트가 Unity3D를 이용하여 개발을 진행하다 보니 일일 자동 빌드의 필요성이 있어 해당 기능을 적용하였다. 우선 자동 빌드를 하기 위한 시스템에는 유니티 에디터가(빌더,컴파일러) 설치되어 있어야 한다. SCM은 S..

어쩌다가 찾아볼일 생기는 메인보드 비프음 판독하기

집에 컴퓨터가 많다보니 이런저런 수리할일이 생기는데 비프음가지고 장애유무를 판단해야한다. 그때마다 구글링하기도 불편하고.. 바이오스 종류별로 잘 정리해논 사이트가 있다. 이거하나면 비프음이 뭔뜻인지 알수 있다. http://w..

EXCEL VBA - 다른파일 스크립트 호출 및 종료

VBA코드의 재사용및 관리를 위하여 해당 데이터가 들어있는 엑셀에서는 비지니스 로직이 들어있는 코드를 생성하지 않는다. 하나의 엑셀파일에 모든 VBA코드를 작성/관리하고 데이터가 있는 엑셀파일에서 해당 기능을 호출하는 것. 이..

ER Studio Entity Name to Clipboard Sample Code

Sub Main Dim mdl As Model Dim ent As Entity Dim attr As AttributeObj Dim strResult As String Set mdl = DiagramManager.ActiveDi..

Unity3D 일일 자동 빌드 하기
스마트폰에 교통신용카드 이식하면 지갑이 필요없다.
스마트폰에 교통신용카드 이식하면 지갑이 필요없다.
스마트폰에 교통신용카드 이식하면 지갑이 필요없다.
스마트폰에 교통신용카드 이식하면 지갑이 필요없다.