Personal things to remember when script writing:
Memo://hkcu
Hive_Load,Default
//hku
Hive_Load,Software
//hklm
Hive_Load,System
Hive_Unload
RegHiveLoad,WB-software,%target_sys%\config\software
RegWrite,HKLM,0x1,WB-software\Classes\*\shellex\PropertySheetHandlers\HashTab,,{8A56567E-A333-4843-B6E1-C3A262E41D8C}
RegWrite,HKLM,0x1,"WB-software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved",{8A56567E-A333-4843-B6E1-C3A262E41D8C},"HashTab Property Page"
RegHiveUnLoad,WB-software
========>
Hive_Load,Software
reg_add,0x1,%reg%\Classes\*\shellex\PropertySheetHandlers\HashTab,,{8A56567E-A333-4843-B6E1-C3A262E41D8C}
reg_add,0x1,"%reg%\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved",{8A56567E-A333-4843-B6E1-C3A262E41D8C},"HashTab Property Page"
Hive_Unload
RegHiveLoad,WB-default,%target_sys%\config\default
RegWrite,HKLM,0x4,WB-Default\Software\HashTab\Algorithms\Adler32,Enabled,0
RegHiveUnLoad,WB-default
========>
Hive_Load,Default
Reg_Add,0x4,%reg%\Software\HashTab\Algorithms\Adler32,Enabled,0
Hive_Unload
If,Not,%SourceArch%,Equal,x86,Exit,"xxxx.script is designed to work only with PEx86 builds for NOW"
FileCopy,%Tools%\%SourceArch%\hiderunEx_%SourceArch%.exe,%Tools%\hiderun.exe,NOWARN
require_file,drivers\swmidi.sys,%source_sys%\%drCabFile%
Expand,%source_win%\%spCabFile%,%target_sys%,NTKRNLMP.EXE
//System,GETENV,PROCESSOR_ARCHITECTURE looks it does not work right, shows x86 on hostosx64
System,GETENV,PROCESSOR_ARCHITECTURE,%host_arch%
//instead use
_Calculate,"@ProcessorArch",HostOSarchitecture
StrFormat,POS,%ProcessorType%,586,%architecture_test%
If,%architecture_test%,Bigger,0,Set,%host_arch%,x86,PERMANENT
StrFormat,POS,%ProcessorType%,2200,%architecture_test%
If,%architecture_test%,Bigger,0,Set,%host_arch%,x64,PERMANENT
StrFormat,POS,%ProcessorType%,8664,%architecture_test%
If,%architecture_test%,Bigger,0,Set,%host_arch%,x64,PERMANENT
My Favorites Templates:Some templates I prepared to use on various scripts

.
-----------------------------------------------------------
%PackedFile_x86%=Far20b1086.x86.20090821.7z
%PackedFile_x64%=Far20b1086.x64.20090821.7z
unpack,files,%packedfile_%SourceArch%%,True
%setupfile_x64%=7z465-x64.msi
%setupfile_x86%=7z465.exe
-----------------------------------------------------------
[variables]
%ProgramTitle%=Defragger
%ProgramEXE%=defragger.exe
[process]
Add_Shortcut,StartMenu
unpack
-----------------------------------------------------------
[variables]
%ProgramTitle%=HDHacker
%ProgramEXE%=HDHacker.exe
%ProgramFolder%=HDHacker
%PackedFile_x86%=hdhacker.zip
%SetupFile%=Linux_Reader.exe
[Interface]
pBevel1=pBevel1,1,12,4,6,133,105
pCheckBox1="Desktop shortcut",1,3,8,10,122,18,False
pCheckBox2="Start menu shortcut",1,3,8,48,122,18,True
pCheckBox3="Quicklaunch shortcut",1,3,8,29,122,18,False
pTextBox1="Start Menu folder:",1,0,11,85,119,18,
Image_Software=none,1,5,142,44,301,223
ScrollBox_RunFromWhere="Run default",1,4,143,6,140,21,"Run default","Run from RAM","Run from CD"
pWebLabel1=HomePage,1,10,20,283,200,18,
[Process]
Arch,x86
Echo,"Processing %ProgramTitle%..."
StrFormat,REPLACE,%ScrollBox_RunFromWhere%," ","",%runfrom%
If,Not,%runfrom%,Equal,Rundefault,%runfrom%,True
If,%pCheckBox1%,Equal,True,Add_Shortcut,Desktop
If,%pCheckBox2%,Equal,True,Add_Shortcut,StartMenu,%pTextBox1%
If,%pCheckBox3%,Equal,True,Add_Shortcut,QuickLaunch
unpack,,%PackedFile_x86%,True
-----------------------------------------------------------
//Extracting-innounp-Copy Begin
If,ExistDir,%Target_Prog%\%ProgramFolder%,DirDelete,%Target_Prog%\%ProgramFolder%
If,Not,ExistDir,%Target_Prog%,DirMake,%Target_Prog%
If,ExistDir,%ProjectTemp%\TempInnounp\%ProgramFolder%,DirDelete,%ProjectTemp%\TempInnounp\%ProgramFolder%
DirMake,%ProjectTemp%\TempInnounp\%ProgramFolder%
ExtractFile,%ScriptFile%,innounp,innounp.exe,%ProjectTemp%\TempInnounp\%ProgramFolder%
ExtractFile,%ScriptFile%,Folder,%Setupfile%,%ProjectTemp%\TempInnounp\%ProgramFolder%
ShellExecute,Hide,cmd.exe,"/c innounp.exe -x -b -d#$q%ProjectTemp%\TempInnounp\%ProgramFolder%#$q #$q%ProjectTemp%\TempInnounp\%ProgramFolder%\%Setupfile%#$q",%ProjectTemp%\TempInnounp\%ProgramFolder%
FileRename,%ProjectTemp%\TempInnounp\%ProgramFolder%\{app},%ProjectTemp%\TempInnounp\%ProgramFolder%\%ProgramFolder%
DirCopy,%ProjectTemp%\TempInnounp\%ProgramFolder%\%ProgramFolder%,%Target_Prog%
//DirDelete,%ProjectTemp%\TempInnounp\%ProgramFolder%
Shellexecute,Hide,cmd.exe,"/C rd /s /q #$q%ProjectTemp%\TempInnounp\%ProgramFolder%#$q"
If,EXISTDIR,%ProjectTemp%\TempInnounp\%ProgramFolder%,Echo,"Directory NOT DELETED",WARN
//unneccary file deletion
//FileDelete,%Target_Prog%\%ProgramFolder%\images_only.yru
Shellexecute,Hide,cmd.exe,"/C del /q /f #$q%Target_Prog%\%ProgramFolder%\images_only.yru#$q"
If,EXISTFILE,%Target_Prog%\%ProgramFolder%\images_only.yru,Echo,"FILE NOT DELETED",WARN
//FileDelete,%Target_Prog%\%ProgramFolder%\skip_browser_cache.yru
Shellexecute,Hide,cmd.exe,"/C del /q /f #$q%Target_Prog%\%ProgramFolder%\skip_browser_cache.yru#$q"
If,EXISTFILE,%Target_Prog%\%ProgramFolder%\skip_browser_cache.yru,Echo,"FILE NOT DELETED",WARN
//FileDelete,%Target_Prog%\%ProgramFolder%\unicows.dll
Shellexecute,Hide,cmd.exe,"/C del /q /f #$q%Target_Prog%\%ProgramFolder%\unicows.dll#$q"
If,EXISTFILE,%Target_Prog%\%ProgramFolder%\unicows.dll,Echo,"FILE NOT DELETED",WARN
//Extracting-innounp-Copy End
//Extracting-7z-Begin
If,Not,ExistDir,%Target_Prog%\%ProgramFolder%,DirMake,%Target_Prog%\%ProgramFolder%
ExtractFile,%scriptfile%,Folder,%SetupFile%,%Target_Prog%\%ProgramFolder%
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%Target_Prog%\%ProgramFolder%\%SetupFile%#$q -y -o#$q%Target_Prog%\%ProgramFolder%#$q"
//FileDelete,%Target_Prog%\%ProgramFolder%\%SetupFile%
Shellexecute,Hide,cmd.exe,"/C del /q /f #$q%Target_Prog%\%ProgramFolder%\%SetupFile%#$q"
If,EXISTFILE,%Target_Prog%\%ProgramFolder%\%SetupFile%,Echo,"FILE NOT DELETED",WARN
//DirDelete,%Target_Prog%\%ProgramFolder%\$PLUGINSDIR
Shellexecute,Hide,cmd.exe,"/C rd /s /q #$q%Target_Prog%\%ProgramFolder%\$PLUGINSDIR#$q"
If,EXISTDIR,%Target_Prog%\%ProgramFolder%\$PLUGINSDIR,Echo,"Directory NOT DELETED",WARN
//Extracting-7z-End
//Extracting-wise-Copy Begin
If,ExistDir,%Target_Prog%\%ProgramFolder%,DirDelete,%Target_Prog%\%ProgramFolder%
DirMake,%Target_Prog%\%ProgramFolder%
If,ExistDir,%ProjectTemp%\TempWiseExtract\%ProgramFolder%,DirDelete,%ProjectTemp%\TempWiseExtract\%ProgramFolder%
ExtractFile,%ScriptFile%,E_WISE_W,E_WISE_W.EXE,%ProjectTemp%\TempWiseExtract\%ProgramFolder%
ExtractFile,%ScriptFile%,E_WISE_W,E_WISE.INI,%ProjectTemp%\TempWiseExtract\%ProgramFolder%
ExtractFile,%scriptfile%,Folder,%PackedFile_x86%,%ProjectTemp%\TempWiseExtract\%ProgramFolder%
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%ProjectTemp%\TempWiseExtract\%ProgramFolder%\%PackedFile_x86%#$q -y -o#$q%ProjectTemp%\TempWiseExtract\%ProgramFolder%#$q"
ShellExecute,Hide,cmd.exe,"/c E_WISE_W.EXE %SetupFile_x86% #$q%ProjectTemp%\TempWiseExtract\%ProgramFolder%#$q",%ProjectTemp%\TempWiseExtract\%ProgramFolder%
ShellExecute,Hide,cmd.exe,"/c 00000000.BAT",%ProjectTemp%\TempWiseExtract\%ProgramFolder%
FileCopy,%ProjectTemp%\TempWiseExtract\%ProgramFolder%\MAINDIR\eDATAUnerase.exe,%Target_Prog%\%ProgramFolder%
FileCopy,%ProjectTemp%\TempWiseExtract\%ProgramFolder%\MAINDIR\eDATAUnerase.chm,%Target_Prog%\%ProgramFolder%
FileCopy,%ProjectTemp%\TempWiseExtract\%ProgramFolder%\SYS32\OctaneARM.dll,%Target_Prog%\%ProgramFolder%
//DirDelete,%ProjectTemp%\TempWiseExtract\%ProgramFolder%
Shellexecute,Hide,cmd.exe,"/C rd /s /q #$q%ProjectTemp%\TempWiseExtract\%ProgramFolder%#$q"
If,EXISTDIR,%ProjectTemp%\TempWiseExtract\%ProgramFolder%,Echo,"Directory NOT DELETED",WARN
//Extracting-wise-Copy End
If,ExistDir,%Target_Prog%\%ProgramFolder%,DirDelete,%Target_Prog%\%ProgramFolder%
If,ExistDir,%ProjectTemp%\Temp7zExtract\%ProgramFolder%,DirDelete,%ProjectTemp%\Temp7zExtract\%ProgramFolder%
ExtractFile,%scriptfile%,Folder,%setupfile_%SourceArch%%,%ProjectTemp%\Temp7zExtract\%ProgramFolder%
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%ProjectTemp%\Temp7zExtract\%ProgramFolder%\%setupfile_%SourceArch%%#$q -y -o#$q%ProjectTemp%\Temp7zExtract\%ProgramFolder%#$q"
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%ProjectTemp%\Temp7zExtract\%ProgramFolder%\product.cab#$q -y -o#$q%ProjectTemp%\Temp7zExtract\%ProgramFolder%\product#$q"
Button_Launch_Program=Launch,1,8,13,207,80,25,Launch_Program
[Launch_Program]
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%ProgramEXE%,unpack,,%PackedFile_x86%,True,%ProjectTemp%\TempLaunchFile,%ProgramFolder%
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
System,FILEREDIRECT,ON
[Launch_Program]
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\{app}\%ProgramEXE%,Begin
ExtractFile,%ScriptFile%,innounp,innounp.exe,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ExtractFile,%ScriptFile%,Folder,%Setupfile%,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ShellExecute,Hide,cmd.exe,"/c innounp.exe -x -b -d#$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%#$q #$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%Setupfile%#$q",%ProjectTemp%\TempLaunchFile\%ProgramFolder%
End
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\{app}
System,FILEREDIRECT,ON
[Launch_Program]
_Calculate,"@ProcessorArch",HostOSarchitecture
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\chkdsk-gui_%HostOSarchitecture%.exe,ExtractFile,%ScriptFile%,chkdskgui,chkdsk-gui_%HostOSarchitecture%.exe,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ShellExecuteEx,Open,chkdsk-gui_%HostOSarchitecture%.exe,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
[Launch_Program]
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%ProgramEXE%,ExtractFile,%scriptfile%,Folder,%SetupFile%,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%SetupFile%#$q -y -o#$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%#$q"
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
System,FILEREDIRECT,ON
[Launch_Program]
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%ProgramEXE%,Begin
//Extracting-wise
If,ExistDir,%ProjectTemp%\TempLaunchFile\%ProgramFolder%,DirDelete,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ExtractFile,%ScriptFile%,E_WISE_W,E_WISE_W.EXE,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ExtractFile,%ScriptFile%,E_WISE_W,E_WISE.INI,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ExtractFile,%scriptfile%,Folder,%PackedFile_x86%,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ShellExecute,Hide,%Tools%\7z.exe,"x #$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%PackedFile_x86%#$q -y -o#$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%#$q"
ShellExecute,Hide,cmd.exe,"/c E_WISE_W.EXE %SetupFile_x86% #$q%ProjectTemp%\TempLaunchFile\%ProgramFolder%#$q",%ProjectTemp%\TempLaunchFile\%ProgramFolder%
ShellExecute,Hide,cmd.exe,"/c 00000000.BAT",%ProjectTemp%\TempLaunchFile\%ProgramFolder%
//Extracting-wise
FileCopy,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\SYS32\OctaneARM.dll,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\MAINDIR
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\MAINDIR
System,FILEREDIRECT,ON
[Launch_Program]
If,Not,ExistFile,%ProjectTemp%\TempLaunchFile\%ProgramFolder%\%ProgramEXE%,unpack,,,,%ProjectTemp%\TempLaunchFile,%ProgramFolder%
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
System,FILEREDIRECT,ON
[Launch_Program]
_Calculate,"@ProcessorArch",HostOSarchitecture
If,ExistDir,%ProjectTemp%\TempLaunchFile\%ProgramFolder%,DirDelete,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
unpack,files,%packedfile_%HostOSarchitecture%%,True,%ProjectTemp%\TempLaunchFile,%ProgramFolder%
ShellExecuteEx,Open,%ProgramEXE%,,%ProjectTemp%\TempLaunchFile\%ProgramFolder%
######################################################
OpenSourceFilesbutton="Open Dir",1,8,409,73,46,24,OpenSourceFilesDir
[OpenSourceFilesDir]
If,%pFileBox1%,Equal,"",Exit,"No Directory Specified"
If,Not,ExistDir,%pFileBox1%,DirMake,%pFileBox1%
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,explorer.exe,/e#$c#$q%pFileBox1%#$q,%pFileBox1%
System,FILEREDIRECT,ON
OpenSourceFilesDirFilebutton="Open Dir",1,8,409,73,46,24,OpenSourceFilesDirFile
[OpenSourceFilesDirFile]
If,%pFileBox1%,Equal,"",Exit,"No Directory Specified"
StrFormat,path,%pFileBox1%,%pFileBox1%
If,Not,ExistDir,%pFileBox1%,DirMake,%pFileBox1%
System,FILEREDIRECT,OFF
ShellExecuteEx,Open,explorer.exe,/e#$c#$q%pFileBox1%#$q,%pFileBox1%
System,FILEREDIRECT,ON
System,FILEREDIRECT,OFF
ShellExecuteex,Hide,cmd.exe,"/C #$q%BaseDir%\Temp\colorchart.htm#$q",%BaseDir%\Temp
System,FILEREDIRECT,ON
######################################################
If,%pCheckBox_WOW64CmdFiles%,Equal,True,If,Not,%ProcessEnd%,Equal,reached,Run,%scriptfile%,wow64filesA
[wow64filesA]
If,Not,%SourceArch%,Equal,x86,If,%TargetWOW64%,Equal,x86,Run,%scriptfile%,wow64filesB
[wow64filesB]
Arch,x86
set,%ProcessEnd%,reached
Run,%ScriptFile%,Process
######################################################
RegAddBoot,HKCU,0x1,Software\DiskInternals\LinuxReader,run,%PE_Programs%\%ProgramFolder%\%ProgramEXE%
RegAddBoot,HKLM,0x1,Software\EasyBoot Systems\UltraISO\5.0,,%PE_Programs%\%ProgramFolder%
RegAddBoot,HKLM,0x2,Software\Classes\Bulk.Rename.1\DefaultIcon,,"%PE_Programs%\%ProgramFolder%\%ProgramEXE%,1"
RegAddBoot,HKLM,0x2,Software\Classes\Bulk.Rename.1\shell\open\command,,"#$q%PE_Programs%\%ProgramFolder%\%ProgramEXE%#$q #$q#$p1#$q"
RegAddBoot,HKLM,0x2,Software\BRU\Bulk.Rename.1,InstallPath,%PE_Programs%\%ProgramFolder%\
RegAddBoot,HKLM,0x2,Software\Classes\Opera.html\shell\open\command,,#$q%PE_Programs%\%ProgramFolder%\%ProgramEXE%#$q#$s#$q#$p1#$q
######################################################
[process]
arch,x86
....
If,%sourcearch%,Equal,x86,Set,%targetdirvalue%,%target_sys%
If,Not,%sourcearch%,Equal,x86,Set,%targetdirvalue%,%target_win%\SysWOW64
If,Not,ExistFile,%targetdirvalue%\,require_file,
If,Not,ExistFile,%targetdirvalue%\lpk.dll,require_file,lpk.dll
[process]
....
Set,%targetdirvalue%,%target_sys%
If,Not,ExistFile,%checksource%\,require_file,
PE1 special:
[process]
Set,%targetdirvalue%,%target_sys%
Set,%sourcedirvalue%,%source_sys%\
Set,%registrysub%,""
Set,%systemreglocation%,System32
Run,%scriptfile%,File_Requirements
If,Not,%SourceArch%,Equal,x86,If,%TargetWOW64%,Equal,x86,Run,%scriptfile%,wow64supportcoming
[wow64supportcoming]
Set,%targetdirvalue%,%target_win%\SysWOW64
Set,%sourcedirvalue%,%SourceDir%\I386\W
Set,%registrysub%,Wow6432Node\
Set,%systemreglocation%,SysWOW64
Run,%scriptfile%,File_Requirements
[File_Requirements]
If,Not,ExistFile,%targetdirvalue%\msvbvm60.dll,CopyOrExpand,%sourcedirvalue%msvbvm60.dll,%targetdirvalue%\msvbvm60.dll
######################################################
If,Not,ExistFile,%target_sys%\GDIPLUS.dll,If,ExistFile,%SourceDir%\i386\ASMS\1000\MSFT\Windows\GDIPLUS\GDIPLUS.dl?,CopyorExpand,%SourceDir%\i386\ASMS\1000\MSFT\Windows\GDIPLUS\GDIPLUS.dll,%target_sys%
######################################################
-----------OLD NOT USED ANYMORE-----------
CheckBox_RunFromRam="Run from RAM (boot.wim or RAMdisk)",1,3,174,6,200,20,False
RunFromRam,%CheckBox_RunFromRam%
-----------OLD NOT USED ANYMORE-----------