[GTKUI] Add associate magnet reg in Windows

This commit is contained in:
Calum Lind 2014-08-24 10:51:47 +01:00
parent 4ad45b2d4a
commit da254a80cf
2 changed files with 29 additions and 5 deletions

View File

@ -156,7 +156,31 @@ def associate_magnet_links(overwrite=False):
Returns:
bool: True if association was set
"""
if not deluge.common.windows_check():
if deluge.common.windows_check():
import _winreg
try:
hkey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, "Magnet")
except WindowsError:
overwrite = True
finally:
_winreg.CloseKey(hkey)
if overwrite:
_winreg.CreateKey(_winreg.HKEY_CLASSES_ROOT, "Magnet")
magnet_key = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, "Magnet", 0, _winreg.KEY_WRITE)
_winreg.SetValue(magnet_key, "", _winreg.REG_SZ, "URL:Magnet Protocol")
_winreg.SetValue(magnet_key, "URL Protocol", _winreg.REG_SZ, "")
_winreg.SetValue(magnet_key, "DefaultIcon", _winreg.REG_SZ, "")
_winreg.SetValue(magnet_key + "/DefaultIcon", "", _winreg.REG_SZ, "deluge.exe,1")
_winreg.SetValue(magnet_key, "shell\open\command", _winreg.REG_SZ, "")
## need to find current running dir: os.path.dirname(os.path.realpath(__file__))
_winreg.SetValue(magnet_key + "\shell\open\command", "", _winreg.REG_SZ, "C:\Program Files\Deluge\deluge.exe" "%1")
_winreg.CloseKey(magnet_key)
# Don't try associate magnet on OSX see: #2420
elif not deluge.common.osx_check():
# gconf method is only available in a GNOME environment
try:
import gconf

View File

@ -182,11 +182,11 @@ SectionEnd
# Create magnet uri association
Section "Create magnet uri link association for Deluge" Section3
DeleteRegKey HKCR "magnet"
WriteRegStr HKCR "magnet" "" "URL:magnet protocol"
WriteRegStr HKCR "magnet" "URL Protocol" ""
DeleteRegKey HKCR "Magnet"
WriteRegStr HKCR "Magnet" "" "URL:Magnet Protocol"
WriteRegStr HKCR "Magnet" "URL Protocol" ""
WriteRegStr HKCR "magnet\shell\open\command" "" '"$INSTDIR\deluge.exe" "%1"'
WriteRegStr HKCR "Magnet\shell\open\command" "" '"$INSTDIR\deluge.exe" "%1"'
SectionEnd