mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-30 06:23:13 -06:00
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from __future__ import unicode_literals
|
|
from future import standard_library
|
|
standard_library.install_aliases()
|
|
from builtins import str
|
|
import winreg
|
|
import os
|
|
import sys
|
|
from platform_utils import paths
|
|
|
|
RUN_REGKEY = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
|
|
|
|
def is_installed(app_subkey):
|
|
"""Checks if the currently running copy is installed or portable variant. Requires the name of the application subkey found under the uninstall section in Windows registry."""
|
|
|
|
try:
|
|
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%s" % app_subkey)
|
|
inst_dir = winreg.QueryValueEx(key,"InstallLocation")[0]
|
|
except WindowsError:
|
|
return False
|
|
winreg.CloseKey(key)
|
|
try:
|
|
return os.stat(inst_dir) == os.stat(paths.app_path())
|
|
except WindowsError:
|
|
return False
|
|
|
|
def getAutoStart(app_name):
|
|
"""Queries if the automatic startup should be set for the application or not, depending on it's current state."""
|
|
|
|
try:
|
|
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, RUN_REGKEY)
|
|
val = winreg.QueryValueEx(key, str(app_name))[0]
|
|
return os.stat(val) == os.stat(sys.argv[0])
|
|
except (WindowsError, OSError):
|
|
return False
|
|
|
|
def setAutoStart(app_name, enable=True):
|
|
"""Configures automatic startup for the application, if the enable argument is set to True. If set to False, deletes the application AutoStart value."""
|
|
if getAutoStart(app_name) == enable:
|
|
return
|
|
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, RUN_REGKEY, 0, winreg.KEY_WRITE)
|
|
if enable:
|
|
winreg.SetValueEx(key, str(app_name), None, winreg.REG_SZ, paths.get_executable())
|
|
else:
|
|
winreg.DeleteValue(key, str(app_name))
|