SwitchRun 개발하고나서 우려했던 문제점을 하나 발견했는데 . . .
컴퓨터의 연산을 너무 뺏어먹지 않을까 우려했는데, 그거시 현실로 일어났습니다 !
만약, 사용하시고 계신 분들 계신다면, 이 부분을 참고하시면 되겠습니다.
( 조만간, 프로그램 탐지 기능 변경예정 )
이하, 최근에 개발하려는 인스톨 스크립터 스크립트 문구
[공통 부분] - 모든 스크립트는 '@'으로 시작해서 '\n(엔터)'로 끝낸다. - 따라서, '@' 가 붙지 않는 줄에 한해선 주석과 같은 처리됨. ( 주석넣고 싶으면 @을 쓰지말고 그냥 그대로 적을것. ) - 스크립트 내용은 반드시, '유니코드 or utf-8' 로 처리 ( 기본값 유니코드 ) - 인스톨 시작시 자동적으로 설치할 폴더를 설정하게 해둠. - 스크립트의 시작은 @scriptstart [인스톨 이름], @scriptend 로 종료시킨다. ex) @scriptstart 大空のヒカリ @scriptend - utf-8로 작업하고 싶을시 '@utf-8' 선언 - 인스톨시 표시될 이미지 한장은 @img="파일이름" 으로 설정.(bmp만 지원. jpg, png은 차후...)
[드라이브 부분] - @type=drive>find check="Setup.exe:CRC32|18a9s7f6","Setup.ini" ... # A:\부터 Z:\ 드라이브를 쭉 돌아가면서 Setup.exe와 Setup.ini가 있을 경우 그 드라이브를 게임 CD 드라이브로 설정한다. (check시 crc32/size 지원) - @type=drive>set name="A" # A:\으로 설정된다.
[폴더 부분] - @type=folder>set>source name="게임 DISK 위치를 설정할 폴더" - @type=folder>set>dest name="게임 설치될 설정할 폴더" - @type=folder>create name="생성폴더이름" - @type=folder>copy>source name="복사하고 싶은 폴더" - @type=folder>copy>dest name="복사 어디다 하고 싶은가 설정" - @type=folder>copy>once # source 폴더 안에 있는 폴더와 파일을 복사하되, 하위 폴더내용을 넣지 않음. - @type=folder>copy>tree # source 폴더 안에 있는 폴더와 파일을 복사하되, 하위 폴더내용을 넣음.
[파일 부분] - @type=file>create>read name="생성파일이름" - @type=file>create>write name="생성파일이름" # 사용전에 folder>set 으로 폴더 설정(set 기본값 ".") - @type=file>read offset="오프셋" byte="바이트" - @type=file>write offset="오프셋" byte="바이트" # write 구문에서의 byte에 FILE_READ_BYTE 적으면 read에서 읽혀진 값 및 버퍼가 적용됨. # read 사용하지 않고 순수 바이너리 숫자만 적을 경우 버퍼로 인정. # read한 오프셋이랑 동기화해서 write 하고 싶은 경우, FILE_READ_OFFSET / FILE_WRITE_OFFSET 으로 처리함. - @type=file>end name="생성파일이름" - @type=file>copy name="source 폴더에 있는 파일 이름" # copy 명령에는 반드시 folder>set>source,dest 타입 사용해야함.
[레지스트리 부분] - @type=reg>create>key name="생성키이름" - @type=reg>set>key name="메인키" # 메인키 : HKEY_CLASSES_ROOT, HKEY_CURRENT_USER 등.. - @type=reg>set>key>sub name="서브키" # 서브키 : 메인키\[Software\..........]<--이부분 - @type=reg>create>key>[KEY TYPE] name="생성키이름" val="값" [KEY TYPE] = REG_BINARY(Binary), REG_SZ(String), REG_DWORD etc... - @type=reg>create name="생성파일이름"
[기타 구문] - @checkfunc "오류코드" - @checkfunc detail [s] "오류코드" "메시지" # s를 넣을 경우 오류난 구문을 인스톨 실패시 메시지 출력함. # 위 함수를 실행하고 실패할시 오류 코드를 뿜어냄 ex) @checkfunc detail s "1000" "파일 복사실패" ┌───────────────────┐ │ 프로그램 설치에 실패했습니다. │ │ 1000:파일 복사실패(filename.exe) │ │ @type=file>create name="filename.exe"│ └───────────────────┘ - @checkfunc go "GO_NAME" - @go "GO_NAME" # 해당구문이 틀릴 경우 go를 이용해 다른쪽으로 구문 이동.
[프로세스 구문] - @proc>create name="파일 경로" - @proc>wait s="초" # 끝날때까지 기다리고자 할때에는 "END"
[플러그인 지원 부분]
[구문 예제]
스크립트 시작 @scriptstart テストプログラム
utf-8 문서 선언 @utf-8
드라이브 설정 @type=drive>find check="Setup.exe:CRC32|4892efcb"
폴더 위치 설정 @type=folder>set>source name="." @type=folder>set>dest name="." 폴더내용 전부 복사 @folder>copy>source name="." @folder>copy>dest name="." @folder>copy>tree @checkfunc detail s "100" "파일 복사실패"
HKEY_CURRENT_USER의 Software키 하위로 ForeCorp을 두고 그 키 안에 InstPath 문자열키 생성 @reg>set>key name="HKEY_CURRENT_USER" @reg>set>key>sub name="Software" @reg>create>key name="ForeCorp" @reg>set>key>sub name="Software\ForeCorp" @reg>create>key>REG_SZ name="InstPath" val="C:\TEST\"
스크립트 종료 @scriptend
계속 진행 . . .
|
안쓰던 머리 쓰려니까 터지겠구나 . . .
웹서버 비스무리하게 구축완료. (0) | 2012.10.09 |
---|---|
소켓 프로그래밍 5시간의 성과 (2) | 2012.10.09 |
만드는데 17시간 걸렸다... (4) | 2012.09.28 |
이런거 한다네요 (2) | 2012.09.19 |
후 . . . 어느정도 완성됐당 ! (0) | 2012.09.14 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |