nsOpenUrl.nsh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. !macro _OpenURL URL
  2. Push "${URL}"
  3. Push $3
  4. Exch
  5. Push $2
  6. Exch
  7. Push $1
  8. Exch
  9. Push $0
  10. Exch
  11. ReadRegStr $0 HKCR "http\shell\open\command" ""
  12. # Get browser path
  13. DetailPrint $0
  14. StrCpy $2 '"'
  15. StrCpy $1 $0 1
  16. StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char
  17. StrCpy $2 ' '
  18. StrCpy $3 1
  19. loop:
  20. StrCpy $1 $0 1 $3
  21. DetailPrint $1
  22. StrCmp $1 $2 found
  23. StrCmp $1 "" found
  24. IntOp $3 $3 + 1
  25. Goto loop
  26. found:
  27. StrCpy $1 $0 $3
  28. StrCmp $2 " " +2
  29. StrCpy $1 '$1"'
  30. Pop $0
  31. Exec '$1 $0'
  32. Pop $0
  33. Pop $1
  34. Pop $2
  35. Pop $3
  36. !macroend
  37. !define OpenURL '!insertmacro "_OpenURL"'
  38. !define un.OpenURL '!insertmacro "_OpenURL"'