Register .xsh extension to invoke XSharper
<?xml version="1.0" encoding="utf-8"?> <xsharper xmlns="http://www.xsharper.com/schemas/1.0" requireAdmin="1"> <versionInfo title="register" value="Register XSharper as default handler for .XSH file extension" Version="0.1.0.0" Copyright="(C) 2009 DeltaX Inc." /> <set process="${=System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName}" /> <set filename="${=string.Concat(Path.Combine(Path.GetTempPath(),Path.GetRandomFileName()),'.reg')}" /> <try> <set cmdLine="${=${process}.Replace('\','\\')}" /> <writetext to="${filename}" tr="expand trimStart multiline" encoding="ascii"> REGEDIT4 [HKEY_CLASSES_ROOT\.xsh] @="xshfile" "Content Type"="text/xml" [HKEY_CLASSES_ROOT\xshfile] @="XSharper Script" [HKEY_CLASSES_ROOT\xshfile\DefaultIcon] @="${cmdLine},1" [HKEY_CLASSES_ROOT\xshfile\Shell] [HKEY_CLASSES_ROOT\xshfile\Shell\Edit] [HKEY_CLASSES_ROOT\xshfile\Shell\Edit\Command] @="notepad.exe '%1'" [HKEY_CLASSES_ROOT\xshfile\Shell] [HKEY_CLASSES_ROOT\xshfile\Shell\Open] @="Execute" [HKEY_CLASSES_ROOT\xshfile\Shell\Open\Command] @="\"${cmdline}\" \"%1\" %*" [HKEY_CLASSES_ROOT\xshfile\Shell\OpenAndWait] @="Execute and wait" [HKEY_CLASSES_ROOT\xshfile\Shell\OpenAndWait\Command] @="\"${cmdline}\" //wait \"%1\" %*" </writetext> <shell> regedit <param>/s</param> <param>${filename}</param> </shell> <print>XSharper registration was successful</print> </try> <finally> <delete from="${filename}" /> </finally> </xsharper>