home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2011 November
/
CHIP_2011_11.iso
/
Programy
/
Narzedzia
/
TeamSpeak
/
TeamSpeak3-Client-win32-3.0.0.exe
/
plugins
/
clientquery_plugin
/
examples
/
ts3paths.py
< prev
Wrap
Text File
|
2011-06-22
|
3KB
|
96 lines
#
# TeamSpeak 3 ClientQuery example
# Copyright (c) 2010 TeamSpeak Systems GmbH
#
# Common functions to get TeamSpeak 3 paths from the Windows registry
#
import _winreg, os
#
# Attempt to open TeamSpeak 3 Client registry key in "Software\TeamSpeak 3 Client" for 32 or 64 bit client
# versions in local or global installation mode
#
def openTS3ClientKey(isLocal, is64Bit):
if isLocal:
key = _winreg.HKEY_CURRENT_USER
else:
key = _winreg.HKEY_LOCAL_MACHINE
if is64Bit:
sam = _winreg.KEY_WOW64_64KEY
else:
sam = _winreg.KEY_WOW64_32KEY
try:
hKey = _winreg.OpenKey(key, r'Software\TeamSpeak 3 Client', 0, _winreg.KEY_READ | sam)
return hKey
except WindowsError:
return None
#
# Try to open the "Software\TeamSpeak 3 Client" registry key
# Depending if the installation is a 32 or 64 bit client and if it was installed locally or into C:\Program Files, there
# we have to try multiple combination to find the right registry location
#
def getTS3ClientHKey():
hKey = openTS3ClientKey(False, False) # 32-bit in HKEY_LOCAL_MACHINE
if not hKey:
hKey = openTS3ClientKey(True, False) # 32-bit in HKEY_CURRENT_USER
if not hKey:
hKey = openTS3ClientKey(False, True) # 64-bit in HKEY_LOCAL_MACHINE
if not hKey:
hKey = openTS3ClientKey(True, True) # 64-bit in HKEY_CURRENT_USER
return hKey
#
# Open TeamSpeak 3 Client registry key and return the value of the given subkey
#
def getTS3ClientRegistryKey(subkey):
hKey = getTS3ClientHKey()
if not hKey:
return None # Failed
try:
value, type = _winreg.QueryValueEx(hKey, subkey)
except WindowsError, err:
print 'Failed to find TeamSpeak 3 Client registry key:', err
_winreg.CloseKey(hKey)
return None
_winreg.CloseKey(hKey)
return value
#
# Get TeamSpeak 3 client installation folder from Windows registry
#
def getTS3ClientInstallPath():
return getTS3ClientRegistryKey('') # Default key
#
# Get TeamSpeak 3 client binary path
# First get the installation folder from registry, then check for both 32 and 64 bit binary.
# Return full path of the TS3 client binary or None if client was not found.
#
def getTS3ClientBinaryPath():
installPath = getTS3ClientInstallPath()
if not installPath:
return None
binaryPath = installPath + r'\ts3client_win32.exe'
if os.path.exists(binaryPath) and os.path.isfile(binaryPath):
return binaryPath
binaryPath = getTS3ClientInstallPath() + '\\ts3client_win64.exe'
if os.path.exists(binaryPath) and os.path.isfile(binaryPath):
return binaryPath
return None
#
# Get TeamSpeak 3 client config folder from Windows registry
# Returns full path to the config folder or None if config folder was not found.
#
def getTS3ClientConfigPath():
configLocation = getTS3ClientRegistryKey('ConfigLocation') # 0 = home, 1 = local
if configLocation == '0':
configPath = os.path.expandvars('%APPDATA%\TS3Client')
else:
configPath = getTS3ClientInstallPath() + "\config" # Config folder is located inside install path
if os.path.exists(configPath):
return configPath
return None