* raised version number to 1.6
+ added nifty Progress -control - removed TrayTip and Status-ToolTips
This commit is contained in:
parent
723e46f5ad
commit
fd4a62a706
@ -4,10 +4,33 @@
|
||||
; ### ###
|
||||
; ##########################################################################
|
||||
|
||||
StepsAll = 0
|
||||
If regsvr0 > 0
|
||||
StepsAll++
|
||||
If datexe0 > 0
|
||||
StepsAll++
|
||||
If regbak0 > 0
|
||||
StepsAll += 2
|
||||
IfExist %U3_APP_DATA_PATH%\regdataX.reg
|
||||
StepsAll++
|
||||
If regdel0 > 0
|
||||
StepsAll++
|
||||
If fildel0 > 0
|
||||
StepsAll++
|
||||
StepsStep := 100/StepsAll
|
||||
StepsPos = 0
|
||||
|
||||
Progress b2 x%PL% y%PT% w%PW% m FM%PFM% FS%PFS%, U3Helper %U3HVer% - (c)2006-2007 Markus Birth <mbirth@webwriters.de>, Cleaning up %AppName% ..., AHKProgress-%AppName%
|
||||
WinSet Transparent, %PTrans%, AHKProgress-%AppName%
|
||||
|
||||
If (U3_IS_DEVICE_AVAILABLE <> "true")
|
||||
{
|
||||
; U3 stick not plugged in!!
|
||||
MsgBox 4112, U3 Device Not Available (%U3_IS_DEVICE_AVAILABLE%), Your U3 Device seems to be disconnected. The settings cannot be saved!`n`nAll your changes made since plugging in the U3 Device are likely to be lost. Try to manually save them now.`n`n%U3_HOST_EXEC_PATH%`n`nAfter pressing OK, registry entries will be removed.
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
If datexe0 > 0
|
||||
StepsPos++
|
||||
}
|
||||
Else
|
||||
{
|
||||
@ -26,7 +49,7 @@ Else
|
||||
{
|
||||
Loop %regbak0%
|
||||
{
|
||||
Status("Translating paths in registry #" . A_Index . " of " . regbak0 . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Translating paths in registry #%A_Index% ...
|
||||
CurBranch := regbak%A_Index%
|
||||
SplitFirst(RegRoot, RegSub, CurBranch, "\")
|
||||
Loop %RegRoot%, %RegSub%, 0, 1
|
||||
@ -51,14 +74,13 @@ Else
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loop %regbak0%
|
||||
{
|
||||
CurBranch := regbak%A_Index%
|
||||
Status("Saving registry settings #" . A_Index . " of " . regbak0 . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Saving registry settings #%A_Index% ...
|
||||
RunWait regedit /E "%U3_APP_DATA_PATH%\regdata%A_Index%.reg" "%CurBranch%"
|
||||
}
|
||||
}
|
||||
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
|
||||
;Copy data files
|
||||
CopyErrors := ""
|
||||
@ -82,7 +104,7 @@ Else
|
||||
}
|
||||
Loop *.*, 0, 1
|
||||
{
|
||||
Status("Saving data directory " . CurFile . " ... " . Perc(OutIndex-1+(A_Index/FileCount), datexe0) . " CPY:" . Copied . " (SKP:" . Skipped . " / ERR:" . Errors . ")")
|
||||
Progress % StepsPos*StepsStep+StepsStep*(OutIndex-1.00+(A_Index/FileCount))/datexe0, Saving data directory %CurFile% ... (CPY:%Copied% / SKP:%Skipped% / ERR:%Errors%)
|
||||
FileCopyNewer(A_LoopFileLongPath, U3_APP_DATA_PATH . "\" CurFile . "\" . A_LoopFileFullPath)
|
||||
If ErrorLevel = 2
|
||||
{
|
||||
@ -104,7 +126,7 @@ Else
|
||||
Else
|
||||
{
|
||||
; Folder got deleted in the meantime, remove it from backup
|
||||
Status("Removing data directory " . CurFile . " ... " . Perc(A_Index-1, datexe0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/datexe0, Removing data directory %CurFile% ...
|
||||
FileRemoveDir %U3_APP_DATA_PATH%\%CurFile%, 1
|
||||
}
|
||||
}
|
||||
@ -112,7 +134,7 @@ Else
|
||||
{
|
||||
IfExist %U3_HOST_EXEC_PATH%\%CurFile%
|
||||
{
|
||||
Status("Saving data file " . CurFile . " ... " . Perc(A_Index-1, datexe0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/datexe0, Saving data file %CurFile% ...
|
||||
FileCopyNewer(U3_HOST_EXEC_PATH . "\" . CurFile, U3_APP_DATA_PATH . "\" . CurFile)
|
||||
If ErrorLevel > 0
|
||||
CopyErrors .= "File: " . CurFile . "`n"
|
||||
@ -120,14 +142,18 @@ Else
|
||||
Else
|
||||
{
|
||||
; File got deleted in the meantime, remove it from backup
|
||||
Status("Removing data file " . CurFile . " ... " . Perc(A_Index-1, datexe0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/datexe0, Removing data file %CurFile% ...
|
||||
FileSetAttrib -RSH, %U3_APP_DATA_PATH%\%CurFile%
|
||||
FileDelete %U3_APP_DATA_PATH%\%CurFile%
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
If (CopyErrors <> "")
|
||||
MsgBox 4112, Error while copying, Following files could not be backed up:`n`n%CopyErrors%`n`nTry to manually save them now.`n`n%U3_HOST_EXEC_PATH%`n`nAfter pressing OK, those files will be deleted.
|
||||
|
||||
If datexe0 > 0
|
||||
StepsPos++
|
||||
}
|
||||
|
||||
IniRead KeepSettings, %INIFile%, U3Helper, KeepSettings, 0
|
||||
@ -155,35 +181,45 @@ If (KeepSettings = "0" or RevertSettings = "1")
|
||||
{
|
||||
Loop %regbak0%
|
||||
{
|
||||
Status("Removing registry settings #" . A_Index . " from host system ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Removing registry settings #%A_Index% from host ...
|
||||
CurBranch := regbak%A_Index%
|
||||
SplitFirst(RegRoot, RegSub, CurBranch, "\")
|
||||
RegDelete %RegRoot%, %RegSub%
|
||||
If (RevertSettings = "1")
|
||||
{
|
||||
Status("Restoring registry settings #" . A_Index . " from backup ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-0.5)/regbak0, Restoring registry settings #%A_Index% from backup ...
|
||||
RunWait regedit /S "%U3_HOST_EXEC_PATH%\U3Hregbak%A_Index%.reg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
|
||||
If (KeepSettings = "0" or Unattended = "1")
|
||||
{
|
||||
Loop %regdel0%
|
||||
{
|
||||
Status("Removing add. registry settings #" . A_Index . " from host system ... " . Perc(A_Index-1, regdel0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regdel0, Removing add. registry settings #%A_Index% from host ...
|
||||
CurBranch := regdel%A_Index%
|
||||
SplitFirst(RegRoot, RegSub, CurBranch, "\")
|
||||
RegDelete %RegRoot%, %RegSub%
|
||||
}
|
||||
|
||||
If regdel0 > 0
|
||||
StepsPos++
|
||||
|
||||
; regsvr32 stuff
|
||||
Loop %regsvr0%
|
||||
{
|
||||
CurDLL := regsvr%A_Index%
|
||||
Status("Unregistering file " . CurDLL . " ... " . Perc(A_Index-1, regsvr0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regsvr0, Unregistering file %CurDLL% ...
|
||||
RunWait regsvr32 /S /U "%U3_HOST_EXEC_PATH%\%CurDLL%"
|
||||
}
|
||||
|
||||
If regsvr0 > 0
|
||||
StepsPos++
|
||||
|
||||
; remove files
|
||||
Loop %fildel0%
|
||||
{
|
||||
@ -203,18 +239,31 @@ If (KeepSettings = "0" or Unattended = "1")
|
||||
FileGetAttrib FilAttr, %CurFile%
|
||||
IfInString FilAttr, D
|
||||
{
|
||||
Status("Removing directory #" . A_Index . " from host system ... " . Perc(A_Index-1, fildel0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/fildel0, Removing directory #%A_Index% from host ...
|
||||
FileRemoveDir %CurFile%, 1
|
||||
}
|
||||
Else
|
||||
{
|
||||
Status("Removing file #" . A_Index . " from host system ... " . Perc(A_Index-1, fildel0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/fildel0, Removing file #%A_Index% from host ...
|
||||
FileDelete %CurFile%
|
||||
}
|
||||
}
|
||||
|
||||
If fildel0 > 0
|
||||
StepsPos++
|
||||
}
|
||||
Else
|
||||
{
|
||||
If regdel0 > 0
|
||||
StepsPos++
|
||||
If regsvr0 > 0
|
||||
StepsPos++
|
||||
If fildel0 > 0
|
||||
StepsPos++
|
||||
}
|
||||
|
||||
Status("")
|
||||
Progress 100, hostCleanUp done.
|
||||
|
||||
If (U3_IS_DEVICE_AVAILABLE = "true")
|
||||
{
|
||||
IniDelete %INIFile%, U3Helper, ForeignSettings
|
||||
|
@ -4,10 +4,22 @@
|
||||
; ### ###
|
||||
; ##########################################################################
|
||||
|
||||
Menu Tray, Icon
|
||||
TrayTip Preparing %AppName% ..., U3Helper %U3HVer%`n(c)2006 Markus Birth`nmbirth@webwriters.de, 3, 1
|
||||
StepsAll = 0
|
||||
If regsvr0 > 0
|
||||
StepsAll++
|
||||
If datexe0 > 0
|
||||
StepsAll++
|
||||
If regbak0 > 0
|
||||
StepsAll += 3
|
||||
IfExist %U3_APP_DATA_PATH%\regdataX.reg
|
||||
StepsAll++
|
||||
StepsStep := 100/StepsAll
|
||||
StepsPos = 0
|
||||
|
||||
Status("Checking registry settings...")
|
||||
Progress b2 x%PL% y%PT% w%PW% m FM%PFM% FS%PFS%, U3Helper %U3HVer% - (c)2006-2007 Markus Birth <mbirth@webwriters.de>, Preparing %AppName% ..., AHKProgress-%AppName%
|
||||
WinSet Transparent, %PTrans%, AHKProgress-%AppName%
|
||||
|
||||
Progress, , Checking registry settings...
|
||||
keycount = 0
|
||||
;Registry stuff
|
||||
Loop %regbak0%
|
||||
@ -20,16 +32,19 @@ Loop %regbak0%
|
||||
}
|
||||
If (keycount > 0)
|
||||
{
|
||||
Status("Backing up registry settings #" . A_Index . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Backing up registry settings #%A_Index% ...
|
||||
RunWait regedit /E "%U3_HOST_EXEC_PATH%\U3Hregbak%A_Index%.reg" "%CurBranch%"
|
||||
Status("Cleaning registry settings #" . A_Index . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-0.5)/regbak0, Cleaning registry settings #%A_Index% ...
|
||||
RegDelete %RegRoot%, %RegSub%
|
||||
}
|
||||
}
|
||||
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
|
||||
If (keycount > 0)
|
||||
{
|
||||
Status("")
|
||||
Progress % StepsPos*StepsStep, Registry settings found!
|
||||
IniWrite 1, %INIFile%, U3Helper, KeepSettings
|
||||
If (Unattended = "0")
|
||||
{
|
||||
@ -37,6 +52,7 @@ If (keycount > 0)
|
||||
IfMsgBox Yes
|
||||
{
|
||||
IniWrite 1, %INIFile%, U3Helper, ForeignSettings
|
||||
StepsPos += 2
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -45,17 +61,20 @@ If (ForeignSettings = "0")
|
||||
{
|
||||
Loop %regbak0%
|
||||
{
|
||||
Status("Importing registry settings #" . A_Index . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Importing registry settings #%A_Index% ...
|
||||
RunWait regedit /S "%U3_APP_DATA_PATH%\regdata%A_Index%.reg"
|
||||
}
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
IfExist %U3_APP_DATA_PATH%\regdataX.reg
|
||||
{
|
||||
Status("Importing special registry settings ...")
|
||||
Progress % StepsPos*StepsStep, Importing special registry settings ...
|
||||
RunWait regedit /S "%U3_APP_DATA_PATH%\regdataX.reg"
|
||||
StepsPos++
|
||||
}
|
||||
Loop %regbak0%
|
||||
{
|
||||
Status("Translating paths in registry #" . A_Index . " ... " . Perc(A_Index-1, regbak0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regbak0, Translating paths in registry #%A_Index% ...
|
||||
CurBranch := regbak%A_Index%
|
||||
SplitFirst(RegRoot, RegSub, CurBranch, "\")
|
||||
Loop %RegRoot%, %RegSub%, 0, 1
|
||||
@ -82,8 +101,11 @@ If (ForeignSettings = "0")
|
||||
}
|
||||
}
|
||||
}
|
||||
If regbak0 > 0
|
||||
StepsPos++
|
||||
}
|
||||
|
||||
|
||||
;Copy data files
|
||||
Loop %datexe0%
|
||||
{
|
||||
@ -91,16 +113,41 @@ Loop %datexe0%
|
||||
FileGetAttrib FilAttr, %U3_APP_DATA_PATH%\%CurFile%
|
||||
IfInString FilAttr, D
|
||||
{
|
||||
Status("Copying data directory " . CurFile . " ... " . Perc(A_Index-1, datexe0))
|
||||
FileCopyDir %U3_APP_DATA_PATH%\%CurFile%, %U3_HOST_EXEC_PATH%\%CurFile%, 1
|
||||
Copied = 0
|
||||
Errors = 0
|
||||
OutIndex = %A_Index%
|
||||
FileCount = 0
|
||||
SetWorkingDir %U3_APP_DATA_PATH%\%CurFile%
|
||||
Loop *.*, 0, 1
|
||||
{
|
||||
FileCount++
|
||||
}
|
||||
IfNotExist %U3_HOST_EXEC_PATH%\%CurFile%
|
||||
FileCreateDir %U3_HOST_EXEC_PATH%\%CurFile%
|
||||
Loop *.*, 0, 1
|
||||
{
|
||||
Progress % StepsPos*StepsStep+StepsStep*(OutIndex-1.00+(A_Index/FileCount))/datexe0, Copying data directory %CurFile% ... (CPY:%Copied% / ERR:%Errors%)
|
||||
IfNotExist %U3_HOST_EXEC_PATH%\%CurFile%\%A_LoopFileDir%
|
||||
FileCreateDir %U3_HOST_EXEC_PATH%\%CurFile%\%A_LoopFileDir%
|
||||
FileCopy %A_LoopFileLongPath%, %U3_HOST_EXEC_PATH%\%CurFile%\%A_LoopFileFullPath%, 1
|
||||
If ErrorLevel
|
||||
Errors++
|
||||
Else
|
||||
Copied++
|
||||
}
|
||||
SetWorkingDir %A_ScriptDir%
|
||||
; FileCopyDir %U3_APP_DATA_PATH%\%CurFile%, %U3_HOST_EXEC_PATH%\%CurFile%, 1
|
||||
}
|
||||
Else
|
||||
{
|
||||
Status("Copying data file " . CurFile . " ... " . Perc(A_Index-1, datexe0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/datexe0, Copying data file %CurFile% ...
|
||||
FileCopy %U3_APP_DATA_PATH%\%CurFile%, %U3_HOST_EXEC_PATH%\%CurFile%, 1
|
||||
}
|
||||
}
|
||||
|
||||
If datexe0 > 0
|
||||
StepsPos++
|
||||
|
||||
; regsvr32 stuff
|
||||
IniRead KeepSettings, %INIFile%, U3Helper, KeepSettings, 0
|
||||
If (KeepSettings = "0")
|
||||
@ -108,8 +155,12 @@ If (KeepSettings = "0")
|
||||
Loop %regsvr0%
|
||||
{
|
||||
CurDLL := regsvr%A_Index%
|
||||
Status("Registering file " . CurDLL . " ... " . Perc(A_Index-1, regsvr0))
|
||||
Progress % StepsPos*StepsStep+StepsStep*(A_Index-1)/regsvr0, Registering file %CurDLL% ...
|
||||
RunWait regsvr32 /S "%U3_HOST_EXEC_PATH%\%CurDLL%"
|
||||
}
|
||||
}
|
||||
Status("")
|
||||
|
||||
If regsvr0 > 0
|
||||
StepsPos++
|
||||
|
||||
Progress 100, hostConfigure done.
|
||||
|
59
U3Helper.ahk
59
U3Helper.ahk
@ -2,7 +2,7 @@
|
||||
#NoEnv
|
||||
#Include mb_IniTools.ahk
|
||||
#Include mb_TextTools.ahk
|
||||
U3HVer = 1.4
|
||||
U3HVer = 1.6
|
||||
|
||||
EnvGet U3_DEVICE_SERIAL, U3_DEVICE_SERIAL ; serial number of device (copy protection)
|
||||
EnvGet U3_DEVICE_PATH, U3_DEVICE_PATH ; drive letter to device (F:)
|
||||
@ -40,35 +40,36 @@ IniGetKeys("regbak", INIFile, "RegBackup")
|
||||
IniGetKeys("regdel", INIFile, "RegDelete")
|
||||
IniGetKeys("fildel", INIFile, "FileDelete")
|
||||
|
||||
Perc(pos, all)
|
||||
{
|
||||
perc := Floor(pos*100//all)
|
||||
str = %perc%
|
||||
str .= "% ["
|
||||
lc := perc//10
|
||||
Loop %lc%
|
||||
{
|
||||
str .= "|"
|
||||
}
|
||||
Loop % (109-perc)//10
|
||||
{
|
||||
str .= "."
|
||||
}
|
||||
str .= "]"
|
||||
return str
|
||||
}
|
||||
WinGetPos,Tx,Ty,Tw,Th,ahk_class Shell_TrayWnd,,,
|
||||
; Tw>Th: horizontal taskbar (top or bottom)
|
||||
; Tw<Th: vertical taskbar (left or right)
|
||||
; Tx=0 and Ty=0: top or left
|
||||
; Tx>0: right
|
||||
; Ty>0: bottom
|
||||
PT := 0
|
||||
PL := 0
|
||||
PH := 78
|
||||
PW := 400
|
||||
PFM := 10
|
||||
PFS := 8
|
||||
PTrans := 204
|
||||
|
||||
Status(msg)
|
||||
{
|
||||
global AppName
|
||||
if (StrLen(msg) > 0)
|
||||
{
|
||||
ToolTip %AppName%`n%msg%
|
||||
}
|
||||
Else
|
||||
{
|
||||
ToolTip
|
||||
}
|
||||
if (Tw>Th and Ty<=0) {
|
||||
;taskbar top
|
||||
PL := A_ScreenWidth - PW
|
||||
PT := Ty + Th
|
||||
} else if (Tw>Th and Ty>0) {
|
||||
;taskbar bottom
|
||||
PL := A_ScreenWidth - PW
|
||||
PT := Ty - PH
|
||||
} else if (Tw<Th and Ty=0) {
|
||||
;taskbar left
|
||||
PL := Tx + Tw
|
||||
PT := A_ScreenHeight - PH
|
||||
} else if (Tw<Th and Ty>0) {
|
||||
;taskbar right
|
||||
PL := Tx - PW
|
||||
PT := A_ScreenHeight - PH
|
||||
}
|
||||
|
||||
FileCopyNewer(srcf, dstf)
|
||||
|
Reference in New Issue
Block a user