Tải bản đầy đủ (.pdf) (6 trang)

Ebook Portable Softwares part 59 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (80.6 KB, 6 trang )

;
******************************************************************
********

;
******************************************************************
********
; * Định nghĩa các hằng số (Define constants)
;
******************************************************************
********
!define AUTHOR "" ; tên bạn
!define APP "" ; chèn tên ứng dụng, Ví dụ "TestApp"
!define VER "0.0.0.0" ; chèn phiên bản của chương trình
!define EXE "" ; chèn tên file EXE, Ví dụ "testapp.exe"
!define PNAME "${App}Portable" ; định dạng tên portable (các thư mục và tên
file)
!define ICON "${PNAME}.ico" ; chú thích dòng này khi sử dụng icon mặc định
!define SPLASHIMAGE "${PNAME}.jpg" ; chú thích dòng này khi không dùng
ảnh splashscreen
!define REGKEYS "" ; chèn các khóa registry sử dụng, phân cách bởi "||", chú
thích khi không dùng
!define SETTINGSFILES "" ; chèn các file thiết lập dùng đến, phân cách bởi "||"
được lưu trữ trong máy host, Ví dụ "$WINDIR\TEST.INI", chú thích ra khi không
dùng
!define SETTINGSDIRS "" ; chèn các thư mục thiết lập dùng đến, phân cách bởi
"||" được lưu trữ trong máy host, Ví dụ "$PROFILE\TEST", chú thích ra khi không
dùng
!define INI "${PNAME}.ini" ; có thể thay đổi khi thiết lập của nhiều chương trình
được lưu trong 1 file .INI


;
******************************************************************
********
; * Includes (Bao gồm)
;
******************************************************************
********
!include "Registry.nsh" ; thêm các macro thao tác registry, không được bao gồm
mặc định trong NSIS
!include "WordFunc.nsh" ; thêm header cho thao tác với word
!insertmacro "WordFind" ; thêm chức năng chia tách chuỗi
!include "FileFunc.nsh" ; thêm header cho thao tác với file
!insertmacro "GetParameters" ; thêm chức năng tìm lại các tham số dòng lệnh

;
******************************************************************
********
; * Runtime Switches (chuyển đổi thời gian thực)
;
******************************************************************
********
CRCCheck On ; tiến hành CRC (cycle redundancy check) check của launcher
trước khi bắt đầu("Off" cho việc nén EXE sau này)
WindowIcon Off ; không hiển thị icon của launcher
SilentInstall Silent ; bắt đầu như launcher, không phải installer
AutoCloseWindow True ; tự động đóng khi kết thúc

;
******************************************************************
********

; * Định nghĩa các biến (Define variables)
;
******************************************************************
********
Var ACTION
Var ACTIONDIRECTORY
Var ACTIONPARAMETERS
Var SPLASHSCREEN ; thông tin splash screen có được hiện ra không, mặc định
là có
Var PROGRAMEXE ; tên của file EXE cần chạy
Var PROGRAMDIR ; đường dẫn của file EXE ở trên
Var PROGRAMPARMS ; các tham số thêm vào khi chạy file EXE
Var DATADIR ; đường dẫn tới thư mục nơi lưu tất cả các thiết lập
Var INIFILE ; đường dẫn đầy đủ tới file INI tìm được
Var SECONDLAUNCH ; file EXE có được chạy lần thứ 2 hay không

;
******************************************************************
********
; * Set basic information ( thiết lập các thông tin cơ bản)
;
******************************************************************
********
Name "${APP} Portable"
!ifdef ICON
Icon "${ICON}"
!endif
Caption "${APP} Portable - ${VER}"
OutFile "${PNAME}.exe"


;
******************************************************************
********
; * Set version information (Thiết lập thông tin phiên bản)
;
******************************************************************
********
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
VIProductVersion "${Ver}"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Tên sản phẩm" "${APP}
Portable"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Chú thích" "Cho phép
${APP} chạy trên 1 ổ cứng lưu động."
VIAddVersionKey /LANG=${LANG_ENGLISH} "Bản quyền hợp pháp" "©
${AUTHOR}"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Tên công ty" "by
${AUTHOR}"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Mô tả file" "${APP}
Portable"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Phiên bản của file" "${VER}"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Tên file gốc"
"${PNAME}.exe"

;
******************************************************************
********
; * Hàm: Các khởi chạy khác trước khi chạy chương trình
;
******************************************************************
********

Function Init
FunctionEnd

;
******************************************************************
********
; * Hàm: Các thứ cần dọn sạch trước khi kết thúc chương trình
;
******************************************************************
********
Function CleanUp
FunctionEnd

;
******************************************************************
********
; * Function: Initialize working variables (Hàm chạy các biến làm việc)
;
******************************************************************
********
Function InitVariables
;
; Kiểm tra xem file INI có tồn tại không, thiết lập biến trỏ đến nó
;
IfFileExists "$EXEDIR\${INI}" "" CheckPortableINI
StrCpy "$INIFILE" "$EXEDIR\${INI}"
Goto ReadINIFile
CheckPortableINI:
IfFileExists "$EXEDIR\${PNAME}\${INI}" ""
CheckPortableAppsINI

StrCpy "$INIFILE" "$EXEDIR\${PNAME}\${INI}"
Goto ReadINIFile
CheckPortableAppsINI:
IfFileExists "$EXEDIR\PortableApps\${PNAME}\${INI}" ""
CheckAppsINI
StrCpy "$INIFILE"
"$EXEDIR\PortableApps\${PNAME}\${INI}"
Goto ReadINIFile
CheckAppsINI:
IfFileExists "$EXEDIR\Apps\${PNAME}\${INI}" "" CheckDataINI
StrCpy "$INIFILE" "$EXEDIR\Apps\${PNAME}\${INI}"
Goto ReadINIFile
CheckDataINI:
IfFileExists "$EXEDIR\Data\${PNAME}\${INI}" "" NoINIFile
StrCpy "$INIFILE" "$EXEDIR\Data\${PNAME}\${INI}"
Goto ReadINIFile
Goto NoINIFile
;
; Read content of the INI file (Đọc nội dung file INI)
;
ReadINIFile:
ReadINIStr $0 "$INIFILE" "${PNAME}" "Thư mục chương trình"
StrCmp $0 "" NoINIFile ; nếu trống rỗng lấy lại thiết lập đúng
StrCpy "$PROGRAMDIR" "$EXEDIR\$0" ; lưu thư mục chương
trình
ReadINIStr $0 "$INIFILE" "${PNAME}" "Thư mục dữ liệu"
StrCmp $0 "" NoINIFile ; nếu trống rỗng lấy lại thiết lập đúng
StrCpy "$DATADIR" "$EXEDIR\$0" ; lưu thư mục dữ liệu
ReadINIStr $0 "$INIFILE" "${PNAME}" "file .EXE của chương
trình"

StrCpy "$PROGRAMEXE" "$0" ; lưu tên file .exe
StrCmp $0 "" "" Splash ; nếu trống rỗng dùng tên mặc định
StrCpy "$PROGRAMEXE" "${EXE}" ; cho giá trị mặc định
Splash:
ReadINIStr $0 "$INIFILE" "${PNAME}" "SplashScreen"
StrCpy "$SPLASHSCREEN" "$0" ; lưu trạng thái của màn
hình Splashscreen
StrCmp "$SPLASHSCREEN" "" "" Các tham số chương trình ;
kiểm tra xem biết splashscreen có trống rỗng không
StrCpy "$SPLASHSCREEN" "enabled" ; cho giá trị mặc định
ProgramParameters:
ReadINIStr $0 "$INIFILE" "${PNAME}" "Tham số chương
trình"
StrCpy "$PROGRAMPARMS" "$0" ; lưu các tham số bổ sung
Goto InitVarEnd ; kết thúc việc đọc file INI
NoINIFile: ; thiết lập mặc định cho tất cả các biến
;

×