+ added mb_EnvTools.ahk for everything with environment variables
* implemented ProgressBar on appStop * use appStop routine in appStart-onExit + added RunBeforeStop + added RunBeforeEject * handled all EnvVar-replacements through mb_EnvTools.ahk
This commit is contained in:
parent
fd4a62a706
commit
7d0cd4700f
@ -1,6 +1,6 @@
|
|||||||
EnvSet USERPROFILE, %U3_APP_DATA_PATH%
|
EnvSet USERPROFILE, % EnvValue("U3_APP_DATA_PATH")
|
||||||
EnvSet HOMEPATH, %U3_APP_DATA_PATH%
|
EnvSet HOMEPATH, % EnvValue("U3_APP_DATA_PATH")
|
||||||
EnvSet APPDATA, %U3_APP_DATA_PATH%\Application Data
|
EnvSet APPDATA, % EnvValue("U3_APP_DATA_PATH") . "\Application Data"
|
||||||
|
|
||||||
; add custom PATH directories
|
; add custom PATH directories
|
||||||
EnvGet ePATH, PATH
|
EnvGet ePATH, PATH
|
||||||
@ -8,24 +8,13 @@ IniGetKeys("envdir", INIFile, "EnvPath")
|
|||||||
Loop %envdir0%
|
Loop %envdir0%
|
||||||
{
|
{
|
||||||
CurPath := envdir%A_Index%
|
CurPath := envdir%A_Index%
|
||||||
StringReplace CurPath, CurPath, % "%ALLUSERSPROFILE%", %eALLUSERSPROFILE%, A
|
CurPath := EnvParseStr(CurPath)
|
||||||
StringReplace CurPath, CurPath, % "%APPDATA%", %eAPPDATA%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%CommonProgramFiles%", %eCommonProgramFiles%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%HOMEPATH%", %eHOMEPATH%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%ProgramFiles%", %eProgramFiles%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%SystemRoot%", %eSystemRoot%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%USERPROFILE%", %eUSERPROFILE%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%WINDIR%", %ewindir%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%TEMP%", %eTEMP%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%U3_APP_DATA_PATH%", %U3_APP_DATA_PATH%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%U3_DEVICE_DOCUMENT_PATH%", %U3_DEVICE_DOCUMENT_PATH%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%U3_DEVICE_EXEC_PATH%", %U3_DEVICE_EXEC_PATH%, A
|
|
||||||
StringReplace CurPath, CurPath, % "%U3_HOST_EXEC_PATH%", %U3_HOST_EXEC_PATH%, A
|
|
||||||
|
|
||||||
ePATH := CurPath . ";" . ePATH
|
ePATH := CurPath . ";" . ePATH
|
||||||
}
|
}
|
||||||
EnvSet PATH, %ePATH%
|
EnvSet PATH, %ePATH%
|
||||||
|
|
||||||
|
EnvGet APPDATA, APPDATA
|
||||||
IfNotExist %APPDATA%
|
IfNotExist %APPDATA%
|
||||||
{
|
{
|
||||||
FileCreateDir %APPDATA%
|
FileCreateDir %APPDATA%
|
||||||
@ -41,27 +30,3 @@ Loop %0%
|
|||||||
}
|
}
|
||||||
OnExit ASOnExit
|
OnExit ASOnExit
|
||||||
RunWait %cmdl%
|
RunWait %cmdl%
|
||||||
Goto ASCloseDone
|
|
||||||
|
|
||||||
ASOnExit:
|
|
||||||
Counter = 0
|
|
||||||
ToolTip Closing %AppName% ...
|
|
||||||
|
|
||||||
SplitPath AppExe, AppFile, null, null, null, null
|
|
||||||
|
|
||||||
ASTryClose:
|
|
||||||
Process Exist, %AppFile%
|
|
||||||
If ErrorLevel
|
|
||||||
ProgPID = %ErrorLevel%
|
|
||||||
Else
|
|
||||||
ExitApp
|
|
||||||
|
|
||||||
WinClose ahk_pid %ProgPID%, , 0.5
|
|
||||||
If Counter >= 10
|
|
||||||
Process Close, %ProgPID%
|
|
||||||
Counter += 1
|
|
||||||
Sleep 200
|
|
||||||
Goto ASTryClose
|
|
||||||
|
|
||||||
ASCloseDone:
|
|
||||||
Tooltip
|
|
||||||
|
@ -1,10 +1,29 @@
|
|||||||
Counter = 0
|
ASOnExit:
|
||||||
|
|
||||||
ToolTip Closing %AppName% ...
|
StepsAll = 1
|
||||||
|
If (StrLen(RunBeforeStop) > 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 (StrLen(RunBeforeStop) > 0)
|
||||||
|
{
|
||||||
|
Progress % StepsPos*StepsStep, Running stop command ...
|
||||||
|
RunBeforeStop := EnvParseStr(RunBeforeStop)
|
||||||
|
RunWait %RunBeforeStop%
|
||||||
|
StepsPos++
|
||||||
|
}
|
||||||
|
|
||||||
SplitPath AppExe, AppFile, null, null, null, null
|
SplitPath AppExe, AppFile, null, null, null, null
|
||||||
|
|
||||||
|
Counter = 0
|
||||||
|
CounterMax = 10
|
||||||
|
|
||||||
TryClose:
|
TryClose:
|
||||||
|
Progress % StepsPos*StepsStep+StepsStep*Counter/CounterMax, Stopping %AppName% ...
|
||||||
Process Exist, %AppFile%
|
Process Exist, %AppFile%
|
||||||
If ErrorLevel
|
If ErrorLevel
|
||||||
ProgPID = %ErrorLevel%
|
ProgPID = %ErrorLevel%
|
||||||
@ -12,10 +31,13 @@ Else
|
|||||||
Goto CloseDone
|
Goto CloseDone
|
||||||
|
|
||||||
WinClose ahk_pid %ProgPID%, , 0.5
|
WinClose ahk_pid %ProgPID%, , 0.5
|
||||||
If Counter >= 10
|
If Counter >= %CounterMax%
|
||||||
|
{
|
||||||
|
Progress 100, Killing %AppName% ...
|
||||||
Process Close, %ProgPID%
|
Process Close, %ProgPID%
|
||||||
|
}
|
||||||
Counter += 1
|
Counter += 1
|
||||||
Goto TryClose
|
Goto TryClose
|
||||||
|
|
||||||
CloseDone:
|
CloseDone:
|
||||||
ToolTip
|
Progress 100, appStop done.
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
; ##########################################################################
|
; ##########################################################################
|
||||||
|
|
||||||
StepsAll = 0
|
StepsAll = 0
|
||||||
|
If (StrLen(RunBeforeEject) > 0)
|
||||||
|
StepsAll++
|
||||||
If regsvr0 > 0
|
If regsvr0 > 0
|
||||||
StepsAll++
|
StepsAll++
|
||||||
If datexe0 > 0
|
If datexe0 > 0
|
||||||
@ -23,6 +25,14 @@ 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%
|
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%
|
WinSet Transparent, %PTrans%, AHKProgress-%AppName%
|
||||||
|
|
||||||
|
If (StrLen(RunBeforeEject) > 0)
|
||||||
|
{
|
||||||
|
Progress % StepsPos*StepsStep, Running shutdown command ...
|
||||||
|
RunBeforeEject := EnvParseStr(RunBeforeEject)
|
||||||
|
RunWait %RunBeforeEject%
|
||||||
|
StepsPos++
|
||||||
|
}
|
||||||
|
|
||||||
If (U3_IS_DEVICE_AVAILABLE <> "true")
|
If (U3_IS_DEVICE_AVAILABLE <> "true")
|
||||||
{
|
{
|
||||||
; U3 stick not plugged in!!
|
; U3 stick not plugged in!!
|
||||||
@ -57,17 +67,7 @@ Else
|
|||||||
If (A_LoopRegType = "REG_SZ" or A_LoopRegType = "REG_EXPAND_SZ" or A_LoopRegType = "REG_MULTI_SZ")
|
If (A_LoopRegType = "REG_SZ" or A_LoopRegType = "REG_EXPAND_SZ" or A_LoopRegType = "REG_MULTI_SZ")
|
||||||
{
|
{
|
||||||
RegRead RegValue
|
RegRead RegValue
|
||||||
StringReplace NewRegValue, RegValue, %U3_HOST_EXEC_PATH%, % "%U3_HOST_EXEC_PATH%", A
|
NewRegValue := EnvUnparseStr(RegValue)
|
||||||
StringReplace NewRegValue, NewRegValue, %U3_APP_DATA_PATH%, % "%U3_APP_DATA_PATH%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %U3_DEVICE_EXEC_PATH%, % "%U3_DEVICE_EXEC_PATH%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %U3_DEVICE_DOCUMENT_PATH%, % "%U3_DEVICE_DOCUMENT_PATH%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eTEMP%, % "%TEMP%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eSystemRoot%, % "%SystemRoot%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eAPPDATA%, % "%APPDATA%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eUSERPROFILE%, % "%USERPROFILE%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eALLUSERSPROFILE%, % "%ALLUSERSPROFILE%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eCommonProgramFiles%, % "%CommonProgramFiles%", A
|
|
||||||
StringReplace NewRegValue, NewRegValue, %eProgramFiles%, % "%ProgramFiles%", A
|
|
||||||
If (NewRegValue <> RegValue)
|
If (NewRegValue <> RegValue)
|
||||||
{
|
{
|
||||||
RegWrite %NewRegValue%
|
RegWrite %NewRegValue%
|
||||||
@ -224,18 +224,7 @@ If (KeepSettings = "0" or Unattended = "1")
|
|||||||
Loop %fildel0%
|
Loop %fildel0%
|
||||||
{
|
{
|
||||||
CurFile := fildel%A_Index%
|
CurFile := fildel%A_Index%
|
||||||
StringReplace CurFile, CurFile, % "%ALLUSERSPROFILE%", %eALLUSERSPROFILE%, A
|
CurFile := EnvParseStr(CurFile)
|
||||||
StringReplace CurFile, CurFile, % "%APPDATA%", %eAPPDATA%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%CommonProgramFiles%", %eCommonProgramFiles%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%HOMEPATH%", %eHOMEPATH%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%ProgramFiles%", %eProgramFiles%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%SystemRoot%", %eSystemRoot%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%USERPROFILE%", %eUSERPROFILE%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%WINDIR%", %ewindir%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%TEMP%", %eTEMP%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%U3_APP_DATA_PATH%", %U3_APP_DATA_PATH%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%U3_DEVICE_DOCUMENT_PATH%", %U3_DEVICE_DOCUMENT_PATH%, A
|
|
||||||
StringReplace CurFile, CurFile, % "%U3_DEVICE_EXEC_PATH%", %U3_DEVICE_EXEC_PATH%, A
|
|
||||||
FileGetAttrib FilAttr, %CurFile%
|
FileGetAttrib FilAttr, %CurFile%
|
||||||
IfInString FilAttr, D
|
IfInString FilAttr, D
|
||||||
{
|
{
|
||||||
|
@ -82,18 +82,7 @@ If (ForeignSettings = "0")
|
|||||||
If (A_LoopRegType = "REG_SZ" or A_LoopRegType = "REG_EXPAND_SZ" or A_LoopRegType = "REG_MULTI_SZ")
|
If (A_LoopRegType = "REG_SZ" or A_LoopRegType = "REG_EXPAND_SZ" or A_LoopRegType = "REG_MULTI_SZ")
|
||||||
{
|
{
|
||||||
RegRead RegValue
|
RegRead RegValue
|
||||||
StringReplace NewRegValue, RegValue, % "%U3_HOST_EXEC_PATH%", %U3_HOST_EXEC_PATH%, A
|
NewRegValue := EnvParseStr(RegValue)
|
||||||
StringReplace NewRegValue, NewRegValue, % "%U3_APP_DATA_PATH%", %U3_APP_DATA_PATH%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%U3_DEVICE_EXEC_PATH%", %U3_DEVICE_EXEC_PATH%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%U3_DEVICE_DOCUMENT_PATH%", %U3_DEVICE_DOCUMENT_PATH%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%TEMP%", %eTEMP%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%SystemRoot%", %eSystemRoot%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%WINDIR%", %ewindir%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%APPDATA%", %eAPPDATA%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%USERPROFILE%", %eUSERPROFILE%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%ALLUSERSPROFILE%", %eALLUSERSPROFILE%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%CommonProgramFiles%", %eCommonProgramFiles%, A
|
|
||||||
StringReplace NewRegValue, NewRegValue, % "%ProgramFiles%", %eProgramFiles%, A
|
|
||||||
If (NewRegValue <> RegValue)
|
If (NewRegValue <> RegValue)
|
||||||
{
|
{
|
||||||
RegWrite %NewRegValue%
|
RegWrite %NewRegValue%
|
||||||
|
37
U3Helper.ahk
37
U3Helper.ahk
@ -1,45 +1,27 @@
|
|||||||
#NoTrayIcon
|
#NoTrayIcon
|
||||||
#NoEnv
|
#NoEnv
|
||||||
|
#Include mb_EnvTools.ahk
|
||||||
#Include mb_IniTools.ahk
|
#Include mb_IniTools.ahk
|
||||||
#Include mb_TextTools.ahk
|
#Include mb_TextTools.ahk
|
||||||
U3HVer = 1.6
|
U3HVer = 1.7
|
||||||
|
|
||||||
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:)
|
|
||||||
EnvGet U3_DEVICE_DOCUMENT_PATH, U3_DEVICE_DOCUMENT_PATH ; path to documents (F:\Documents)
|
|
||||||
EnvGet U3_DEVICE_VENDOR, U3_DEVICE_VENDOR ; vendor
|
|
||||||
EnvGet U3_DEVICE_PRODUCT, U3_DEVICE_PRODUCT ; product name string
|
|
||||||
EnvGet U3_DEVICE_VENDOR_ID, U3_DEVICE_VENDOR_ID ; vendor id (decimal!! 2284 = 0x08ec)
|
|
||||||
EnvGet U3_APP_DATA_PATH, U3_APP_DATA_PATH ; data path for app (on device)
|
|
||||||
EnvGet U3_HOST_EXEC_PATH, U3_HOST_EXEC_PATH ; path to exe on host
|
|
||||||
EnvGet U3_DEVICE_EXEC_PATH, U3_DEVICE_EXEC_PATH ; path to needed files on device
|
|
||||||
EnvGet U3_ENV_VERSION, U3_ENV_VERSION ; should be 1.0
|
|
||||||
EnvGet U3_ENV_LANGUAGE, U3_ENV_LANGUAGE ; language id of LaunchPad
|
|
||||||
EnvGet U3_IS_UPGRADE, U3_IS_UPGRADE ; can be "false" or "true"
|
|
||||||
EnvGet U3_IS_DEVICE_AVAILABLE, U3_IS_DEVICE_AVAILABLE ; "true"/"false"
|
|
||||||
EnvGet U3_IS_AUTORUN, U3_IS_AUTORUN ; is this an autorun-launch? "true"/"false"
|
|
||||||
EnvGet U3_DAPI_CONNECT_STRING, U3_DAPI_CONNECT_STRING ; who needs this?
|
|
||||||
EnvGet eALLUSERSPROFILE, ALLUSERSPROFILE ; C:\Documents and Settings\All Users
|
|
||||||
EnvGet eAPPDATA, APPDATA ; C:\Doc...\<username>\Application Data
|
|
||||||
EnvGet eCommonProgramFiles, CommonProgramFiles ; C:\Program Files\Common Files
|
|
||||||
EnvGet eHOMEPATH, HOMEPATH ; C:\Documents and Settings\<username>
|
|
||||||
EnvGet eProgramFiles, ProgramFiles ; C:\Program Files
|
|
||||||
EnvGet eSystemRoot, SystemRoot ; C:\WINDOWS
|
|
||||||
EnvGet eUSERPROFILE, USERPROFILE ; C:\Documents and Settings\<username>
|
|
||||||
EnvGet eTEMP, TEMP ; C:\DOCUME~1\<username8.3>\LOCALS~1\Temp
|
|
||||||
EnvGet ewindir, windir ; C:\WINDOWS
|
|
||||||
|
|
||||||
SplitPath A_ScriptFullPath, null, ScrDir, null, ScrFile, ScrDrive
|
SplitPath A_ScriptFullPath, null, ScrDir, null, ScrFile, ScrDrive
|
||||||
INIFile = %ScrDir%\%ScrFile%.ini
|
INIFile = %ScrDir%\%ScrFile%.ini
|
||||||
IniRead AppName, %INIFile%, U3Helper, AppName, unknown
|
IniRead AppName, %INIFile%, U3Helper, AppName, unknown
|
||||||
IniRead AppExe, %INIFile%, U3Helper, AppExe, cmd.exe
|
IniRead AppExe, %INIFile%, U3Helper, AppExe, cmd.exe
|
||||||
IniRead Unattended, %INIFile%, U3Helper, Unattended, 0
|
IniRead Unattended, %INIFile%, U3Helper, Unattended, 0
|
||||||
|
IniRead RunBeforeStop, %INIFile%, U3Helper, RunBeforeStop, %A_Space%
|
||||||
|
IniRead RunBeforeEject, %INIFile%, U3Helper, RunBeforeEject, %A_Space%
|
||||||
IniGetKeys("regsvr", INIFile, "regsvr32")
|
IniGetKeys("regsvr", INIFile, "regsvr32")
|
||||||
IniGetKeys("datexe", INIFile, "DataToExecDir")
|
IniGetKeys("datexe", INIFile, "DataToExecDir")
|
||||||
IniGetKeys("regbak", INIFile, "RegBackup")
|
IniGetKeys("regbak", INIFile, "RegBackup")
|
||||||
IniGetKeys("regdel", INIFile, "RegDelete")
|
IniGetKeys("regdel", INIFile, "RegDelete")
|
||||||
IniGetKeys("fildel", INIFile, "FileDelete")
|
IniGetKeys("fildel", INIFile, "FileDelete")
|
||||||
|
|
||||||
|
U3_APP_DATA_PATH := EnvValue("U3_APP_DATA_PATH")
|
||||||
|
U3_HOST_EXEC_PATH := EnvValue("U3_HOST_EXEC_PATH")
|
||||||
|
U3_DEVICE_EXEC_PATH := EnvValue("U3_DEVICE_EXEC_PATH")
|
||||||
|
|
||||||
WinGetPos,Tx,Ty,Tw,Th,ahk_class Shell_TrayWnd,,,
|
WinGetPos,Tx,Ty,Tw,Th,ahk_class Shell_TrayWnd,,,
|
||||||
; Tw>Th: horizontal taskbar (top or bottom)
|
; Tw>Th: horizontal taskbar (top or bottom)
|
||||||
; Tw<Th: vertical taskbar (left or right)
|
; Tw<Th: vertical taskbar (left or right)
|
||||||
@ -121,5 +103,6 @@ Else If 1 = appstop
|
|||||||
}
|
}
|
||||||
Else
|
Else
|
||||||
{
|
{
|
||||||
MsgBox No parameter given.
|
MsgBox 48, U3Helper %U3HVer%, No parameter given.`n`nSee http://www.autohotkey.com/forum/topic11839.html for info.`n`n(c)2006-2007 Markus Birth <mbirth@webwriters.de>
|
||||||
|
MsgBox 64, U3Helper %U3HVer% - Debug info, % EnvList(), 30
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
[U3Helper]
|
[U3Helper]
|
||||||
AppName=PC OnPoint
|
AppName=PC OnPoint
|
||||||
AppExe=PConPoint.exe
|
AppExe=PConPoint.exe
|
||||||
|
|
||||||
|
; enter commandlines to run before stopping the application and before
|
||||||
|
; ejecting the device. All variables mentioned under [FileDelete] work.
|
||||||
|
RunBeforeStop=
|
||||||
|
RunBeforeEject=
|
||||||
|
|
||||||
; set Unattended to 1 to suppress settings-related questions
|
; set Unattended to 1 to suppress settings-related questions
|
||||||
; this way, previously existing settings on the host always get
|
; this way, previously existing settings on the host always get
|
||||||
; replaced by the U3's settings and restored on eject
|
; replaced by the U3's settings and restored on eject
|
||||||
|
121
mb_EnvTools.ahk
Normal file
121
mb_EnvTools.ahk
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
#NoEnv
|
||||||
|
|
||||||
|
EnvVars0 = 0
|
||||||
|
EnvVals0 = 0
|
||||||
|
|
||||||
|
; initial list of EnvVars to load
|
||||||
|
EnvVarsAll := "U3_DEVICE_SERIAL,U3_DEVICE_PATH,U3_DEVICE_DOCUMENT_PATH,U3_DEVICE_VENDOR,U3_DEVICE_PRODUCT,U3_DEVICE_VENDOR_ID"
|
||||||
|
EnvVarsAll .= ",U3_APP_DATA_PATH,U3_HOST_EXEC_PATH,U3_DEVICE_EXEC_PATH,U3_ENV_VERSION,U3_ENV_LANGUAGE,U3_IS_UPGRADE"
|
||||||
|
EnvVarsAll .= ",U3_IS_DEVICE_AVAILABLE,U3_IS_AUTORUN,U3_DAPI_CONNECT_STRING"
|
||||||
|
EnvVarsAll .= ",ALLUSERSPROFILE,APPDATA,CommonProgramFiles,HOMEPATH,ProgramFiles,SystemRoot,USERPROFILE,TEMP,windir"
|
||||||
|
|
||||||
|
StringSplit EnvVarsx, EnvVarsAll, `,%A_Space%
|
||||||
|
|
||||||
|
; Load EnvVar-Values and store in EnvVals-array
|
||||||
|
Loop %EnvVarsx0%
|
||||||
|
{
|
||||||
|
EnvName := EnvVarsx%A_Index%
|
||||||
|
EnvGet EnvValsx%A_Index%, %EnvName%
|
||||||
|
}
|
||||||
|
EnvValsx0 = %EnvVarsx0%
|
||||||
|
|
||||||
|
; Sort EnvVar-Values by StrLen() for re-replacement (value to var)
|
||||||
|
; and clean out empty vars
|
||||||
|
CurIndex = 1
|
||||||
|
Loop %EnvVarsx0%
|
||||||
|
{
|
||||||
|
MaxIndex = -1
|
||||||
|
MaxLen = -1
|
||||||
|
Loop %EnvValsx0%
|
||||||
|
{
|
||||||
|
CurNam := EnvVarsx%A_Index%
|
||||||
|
CurVal := EnvValsx%A_Index%
|
||||||
|
If ((StrLen(CurVal) >= MaxLen) and (StrLen(CurNam) > 0))
|
||||||
|
{
|
||||||
|
MaxLen := StrLen(CurVal)
|
||||||
|
MaxIndex := A_Index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
If (StrLen(EnvValsx%MaxIndex%) > 0)
|
||||||
|
{
|
||||||
|
EnvVars%CurIndex% := EnvVarsx%MaxIndex%
|
||||||
|
EnvVals%CurIndex% := EnvValsx%MaxIndex%
|
||||||
|
CurIndex++
|
||||||
|
}
|
||||||
|
EnvVarsx%MaxIndex% := ""
|
||||||
|
EnvValsx%MaxIndex% := ""
|
||||||
|
}
|
||||||
|
|
||||||
|
EnvVars0 := CurIndex-1
|
||||||
|
EnvVals0 := CurIndex-1
|
||||||
|
|
||||||
|
; Debugging stuff:
|
||||||
|
;MsgBox % "comspec:" . EnvValue("comspec")
|
||||||
|
;MsgBox % EnvList()
|
||||||
|
;MsgBox % EnvParseStr("This is a %temp% test running %comspec%!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EnvList()
|
||||||
|
{
|
||||||
|
global
|
||||||
|
local result
|
||||||
|
result := ""
|
||||||
|
Loop %EnvVars0%
|
||||||
|
{
|
||||||
|
result .= EnvVars%A_Index% . " = " . EnvVals%A_Index% . "`n"
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
EnvValue(envname)
|
||||||
|
{
|
||||||
|
global
|
||||||
|
local result
|
||||||
|
result := ""
|
||||||
|
Loop %EnvVars0%
|
||||||
|
{
|
||||||
|
If (EnvVars%A_Index% = envname)
|
||||||
|
{
|
||||||
|
return EnvVals%A_Index%
|
||||||
|
}
|
||||||
|
}
|
||||||
|
; EnvVar not in list - try to catch it
|
||||||
|
EnvGet result, %envname%
|
||||||
|
If (StrLen(result) > 0)
|
||||||
|
{
|
||||||
|
; seems like a result ~~> add to list
|
||||||
|
MyPointer := ++EnvVars0
|
||||||
|
EnvVars%MyPointer% := envname
|
||||||
|
EnvVals%MyPointer% := result
|
||||||
|
EnvVals0++
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
EnvParseStr(instring)
|
||||||
|
{
|
||||||
|
global
|
||||||
|
local ReplFrom, ReplTo
|
||||||
|
Loop %EnvVars0%
|
||||||
|
{
|
||||||
|
ReplFrom := "%" . EnvVars%A_Index% . "%"
|
||||||
|
ReplTo := EnvVals%A_Index%
|
||||||
|
StringReplace instring, instring, %ReplFrom%, %ReplTo%, A
|
||||||
|
}
|
||||||
|
return instring
|
||||||
|
}
|
||||||
|
|
||||||
|
EnvUnparseStr(instring)
|
||||||
|
{
|
||||||
|
global
|
||||||
|
local ReplFrom, ReplTo
|
||||||
|
Loop %EnvVals0%
|
||||||
|
{
|
||||||
|
ReplFrom := EnvVals%A_Index%
|
||||||
|
ReplTo := "%" . EnvVars%A_Index% . "%"
|
||||||
|
StringReplace instring, instring, %ReplFrom%, %ReplTo%, A
|
||||||
|
}
|
||||||
|
return instring
|
||||||
|
}
|
24
mb_EnvTools.txt
Normal file
24
mb_EnvTools.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
EnvAdd("U3_DEVICE_SERIAL") ; serial number of device (copy protection)
|
||||||
|
EnvAdd("U3_DEVICE_PATH") ; drive letter to device (F:)
|
||||||
|
EnvAdd("U3_DEVICE_DOCUMENT_PATH") ; path to documents (F:\Documents)
|
||||||
|
EnvAdd("U3_DEVICE_VENDOR") ; vendor
|
||||||
|
EnvAdd("U3_DEVICE_PRODUCT") ; product name string
|
||||||
|
EnvAdd("U3_DEVICE_VENDOR_ID") ; vendor id (decimal!! 2284 = 0x08ec)
|
||||||
|
EnvAdd("U3_APP_DATA_PATH") ; data path for app (on device)
|
||||||
|
EnvAdd("U3_HOST_EXEC_PATH") ; path to exe on host
|
||||||
|
EnvAdd("U3_DEVICE_EXEC_PATH") ; path to needed files on device
|
||||||
|
EnvAdd("U3_ENV_VERSION") ; should be 1.0
|
||||||
|
EnvAdd("U3_ENV_LANGUAGE") ; language id of LaunchPad
|
||||||
|
EnvAdd("U3_IS_UPGRADE") ; can be "false" or "true"
|
||||||
|
EnvAdd("U3_IS_DEVICE_AVAILABLE") ; "true"/"false"
|
||||||
|
EnvAdd("U3_IS_AUTORUN") ; is this an autorun-launch? "true"/"false"
|
||||||
|
EnvAdd("U3_DAPI_CONNECT_STRING") ; who needs this?
|
||||||
|
EnvAdd("ALLUSERSPROFILE") ; C:\Documents and Settings\All Users
|
||||||
|
EnvAdd("APPDATA") ; C:\Doc...\<username>\Application Data
|
||||||
|
EnvAdd("CommonProgramFiles") ; C:\Program Files\Common Files
|
||||||
|
EnvAdd("HOMEPATH") ; C:\Documents and Settings\<username>
|
||||||
|
EnvAdd("ProgramFiles") ; C:\Program Files
|
||||||
|
EnvAdd("SystemRoot") ; C:\WINDOWS
|
||||||
|
EnvAdd("USERPROFILE") ; C:\Documents and Settings\<username>
|
||||||
|
EnvAdd("TEMP") ; C:\DOCUME~1\<username8.3>\LOCALS~1\Temp
|
||||||
|
EnvAdd("windir") ; C:\WINDOWS
|
27
readme.txt
Normal file
27
readme.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
U3Helper
|
||||||
|
(c)2006-2007 by Markus Birth <mbirth@webwriters.de>
|
||||||
|
|
||||||
|
Some words for the manifest.u3i:
|
||||||
|
|
||||||
|
If your app doesn't store anything inside %USERPROFILE% or such, then just call it directly
|
||||||
|
inside the <appStart> - such as:
|
||||||
|
|
||||||
|
<appStart workingdir="%U3_APP_DATA_PATH%" cmd="%U3_HOST_EXEC_PATH%\WebMon.exe">-prefs "%U3_APP_DATA_PATH%\WebMon.ini" -pages "%U3_APP_DATA_PATH%\pages\WebPages.dat"</appStart>
|
||||||
|
|
||||||
|
BUT: If you app DOES store some stuff inside %USERPROFILE% (mostly noticeable if there appears something under
|
||||||
|
C:\Documents and Settings\<Username>\Application Data\<somewhat>\<something>), call it as follows:
|
||||||
|
|
||||||
|
<appStart workingdir="%U3_APP_DATA_PATH%" cmd="%U3_HOST_EXEC_PATH%\U3Helper.exe">appstart</appStart>
|
||||||
|
|
||||||
|
This way, the environment variables %USERPROFILE% and a bunch of other related will be set to point to the
|
||||||
|
data directory on the U3-stick and therefore those app will store its data there instead of on the host system.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Take a look at the U3Helperex.ini as there are all supported settings mentioned. You'll get the idea of the expected
|
||||||
|
format.
|
||||||
|
|
||||||
|
U3Helper Forum: http://vanilla.birth-online.de/3/
|
||||||
|
U3Helper English info: http://www.autohotkey.com/forum/topic11839.html
|
||||||
|
U3Helper German info: http://blog.birth-online.de/archives/164-Programme-U3-faehig-machen.html
|
Reference in New Issue
Block a user