Admin | Write | GuestBook
[공지] 해당 블로그에 용건이 있으신 분께서는 http://blog.fore.kr/ 의 방명록(Guestbook)으로 부탁드립니다.
음.. 다시 또 프로그램을 하나 만들어야징..
Category : Rest Time !/Monologue | URL : | Written by 포레 ( 2012. 10. 7. 04:11 ) | 신고

  

 

 

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

 

 

 

 계속 진행 . . .

 

 

 

안쓰던 머리 쓰려니까 터지겠구나 . . .

 

Category
분류 전체보기 (605)
Notice (6)
Programming (79)
DISKER (1)
FSCH (7)
Caption (0)
Rest Time ! (443)
Hobby (64)
Tour (5)
Blind Post (0)
Recent Post
Recent Comment
Link
Calender
«   2025/01   »
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
Total :
Today :
Yesterday :