1. Trang chủ
  2. » Công Nghệ Thông Tin

Professional Softs Links part 61 pdf

6 165 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 80,53 KB

Nội dung

; Set default values for variables (Cho biến các giá trị mặc định) ; StrCpy "$PROGRAMEXE" "${EXE}" ; dùng thiết lập mặc định StrCpy "$PROGRAMPARMS" "" StrCpy "$SPLASHSCREEN" "enabled" ; cho phép splashscreen ; ; Kiểm tra cấu hình thư mục nào được dùng và thiết lập các biến theo đó ; IfFileExists "$EXEDIR\App\${APP}\$PROGRAMEXE" "" CheckPortableDIR StrCpy "$PROGRAMDIR" "$EXEDIR\App\${APP}" StrCpy "$DATADIR" "$EXEDIR\Data" Goto InitVarEnd CheckPortableDIR: IfFileExists "$EXEDIR\${PNAME}\App\${APP}\$PROGRAMEXE" "" CheckPortableAppsDIR StrCpy "$PROGRAMDIR" "$EXEDIR\${PNAME}\App\${APP}" StrCpy "$DATADIR" "$EXEDIR\${PNAME}\Data" Goto InitVarEnd CheckPortableAppsDIR: IfFileExists "$EXEDIR\PortableApps\${PNAME}\App\${APP}\$PROGRAMEXE" "" CheckAppsDIR StrCpy "$PROGRAMDIR" "$EXEDIR\PortableApps\${PNAME}\App\${APP}" StrCpy "$DATADIR" "$EXEDIR\PortableApps\${PNAME}\Data" Goto InitVarEnd CheckAppsDIR: IfFileExists "$EXEDIR\Apps\${PNAME}\${APP}\$PROGRAMEXE" "" NoDIR StrCpy "$PROGRAMDIR" "$EXEDIR\Apps\${PNAME}\${APP}" StrCpy "$DATADIR" "$EXEDIR\Data\${PNAME}" Goto InitVarEnd NoDIR: ; ; Không tìm thấy cấu hình thư mục được cho phép nào ; MessageBox MB_OK|MB_ICONEXCLAMATION `$PROGRAMEXE không tìm thấy. Xin kiểm tra cấu hình của bạn` Abort ; kết thúc launcher InitVarEnd: ;kết thúc hàm FunctionEnd ; ****************************************************************** ******** ; * Hàm: Làm việc với các khóa hoặc cây registry (backup, restore, delete) ; ****************************************************************** ******** Function DoAction StrCmp "$ACTIONPARAMETERS" "" Sau vòng lặp ; nếu không có tham số nào thì thôi ngay StrCpy "$R8" "0" ; reset bộ đếm StrCpy "$R2" "$ACTION" 6 # ; chỉ lấy 6 ký tự đầu của hành động đc yêu cầu StrCmp "$R2" "Backup" "" GoOn ; sao lưu thư mục yêu cầu IfFileExists "$ACTIONDIRECTORY\*.*" GoOn ; tạo thư mục sao lưu nếu nó không tồn tại CreateDirectory $ACTIONDIRECTORY GoOn: StrCpy "$R0" "$ACTIONPARAMETERS" ; chép hằng số để làm việc đăng ký Loop: ; ; Lấy tham số đơn ra khỏi danh sách ; StrCmp "$R0" "" Sau vòng lặp ; không phân tích registry, khi không có khóa nào được đưa ra IntOp $R8 $R8 + 1 ; tăng bộ đếm ${WordFind} "$R0" "||" "+01" $R9 ; lưu tham số đầu tiên để đăng ký ${WordFind} "$R0" "||" "+02*}" $R0 ; xóa phần đầu tiên từ giá trị đã lưu StrCmp "$R0" "$R9" LastLoop ; nếu các giá trị đăng ký trùng nhau -> không còn delimiters Goto DoWork ; không xóa danh sách giá trị LastLoop: StrCpy "$R0" "" ; Nếu không có delimiter sẵn có thì làm trống rỗng các biến làm việc ; ;Quyết định làm gì với tham số ; DoWork: StrCpy "$R2" "$ACTION" "" -4 # ; lấy 7 ký tự cuối của biến hoạt động !ifdef REGKEYS StrCmp "$R2" "Keys" DoWorkRegistry ; hành động phải được thực hiện với registry !endif !ifdef SETTINGSFILES StrCmp "$R2" "File" DoWorkFiles ; hành động phải được thực hiện với file !endif !ifdef SETTINGSDIRS StrCmp "$R2" "Dirs" DoWorkDirectory ; hành động phải được thực hiện với các thư mục !endif Goto Continue ; có gì đó không xác định ; ; Thao tác với các khóa registry ; !ifdef REGKEYS DoWorkRegistry: StrCmp "$ACTION" "BackupKeys" BackupRegistryKey ; sao lưu khóa registry StrCmp "$ACTION" "RestoreKeys" RestoreRegistryKey ; phục hồi khóa registry, VD ghi chúng vào registry StrCmp "$ACTION" "DeleteKeys" DeleteRegistryKey ; Xóa các khóa registry Goto Continue ; có gì đó không xác định BackupRegistryKey: ${registry::KeyExists} "$R9" $R7 ; kiểm tra khóa registry có tồn tại hay không StrCmp "$R7" "0" 0 Continue ; khóa registry không tồn tại, không lưu lại gì cả ${registry::SaveKey} "$R9" "$ACTIONDIRECTORY\RegKey$R8.reg" "/G=1" $R7 ; Sao lưu khóa registry Sleep 50 Goto Continue RestoreRegistryKey: IfFileExists "$ACTIONDIRECTORY\RegKey$R8.reg" 0 Continue ; chỉ phục hồi nếu 1 file registry tồn tại ${registry::RestoreKey} "$ACTIONDIRECTORY\RegKey$R8.reg" $R7 ; Phục hồi các khóa registry đã lưu Sleep 50 Goto Continue DeleteRegistryKey: ${registry::DeleteKey} "$R9" $R7 ; Xóa khóa registry Sleep 50 Goto Continue !endif ; ; Thao tác với file ; !ifdef SETTINGSFILES DoWorkFiles: StrCmp "$ACTION" "BackupFile" BackupFile ; thực hiện sao lưu file StrCmp "$ACTION" "RestoreFile" RestoreFile ; phục hồi các file đã lưu, VD ghi nó vào máy host StrCmp "$ACTION" "DeleteFile" DeleteFile ; xóa file từ host computer BackupFile: IfFileExists "$R9" 0 Continue ; kiểm tra xem file có tồn tại hay không CopyFiles "$R9" "$ACTIONDIRECTORY\File$R8.dat" ; sao lưu file Goto Continue RestoreFile: IfFileExists "$ACTIONDIRECTORY\File$R8.dat" 0 Continue ; chỉ phục hồi khi file có sẵn CopyFiles "$ACTIONDIRECTORY\File$R8.dat" "$R9" ; phục hồi file Goto Continue DeleteFile: Delete "$R9" ; xóa file Goto Continue !endif ; ; Thao tác với thư mục ; !ifdef SETTINGSDIRS DoWorkDirectory: StrCmp "$ACTION" "BackupDirs" BackupDirectory ; sao lưu thư mục StrCmp "$ACTION" "RestoreDirs" RestoreDirectory ; phục hồi thư mục đã sao lưu, VD ghi nó vào máy host StrCmp "$ACTION" "DeleteDirs" DeleteDirectory ; xóa thư mục từ máy host BackupDirectory: IfFileExists "$R9\*.*" 0 Continue ; kiểm tra xem thư mục nguồn có tồn tại hay không IfFileExists "$ACTIONDIRECTORY\Dir$R8.dat" +2 0 ; thư mục đích có tồn tại hay không? CreateDirectory "$ACTIONDIRECTORY\Dir$R8.dat" ; tạo thư mục đích CopyFiles "$R9\*.*" "$ACTIONDIRECTORY\Dir$R8.dat" ; sao lưu thư mục Goto Continue RestoreDirectory: IfFileExists "$ACTIONDIRECTORY\Dir$R8.dat\*.*" 0 Continue ; kiểm tra xem các sao lưu có tồn tại không IfFileExists "$R9\*.*" +2 0 ; thư mục đích có tồn tại không CreateDirectory "$R9" ; create target directory CopyFiles "$ACTIONDIRECTORY\Dir$R8.dat\*.*" "$R9" ; phục hồi các thư mục Goto Continue DeleteDirectory: RMDir "/r" "$R9" ; xóa thư mục Goto Continue !endif ; ; End of Loop

Ngày đăng: 07/07/2014, 16:20