import os
import subprocess
import ctypes
vbs='''
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run "taskkill /im TeamViewer.exe", , True
objShell.Run("""%ProgramFiles%\TeamViewer\uninstall.exe"" /S")
Set objShell = Nothing
'''

path=os.environ['TEMP']
drive=os.environ['SYSTEMDRIVE']
filepath=path+'\\removetv.vbs'
fob=open(filepath,'w+')
fob.write(vbs)
fob.close()

class disable_file_system_redirection:
    _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
    _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection

    def __enter__(self):
        self.old_value = ctypes.c_long()
        self.success = self._disable(ctypes.byref(self.old_value))

    def __exit__(self, type, value, traceback):
        if self.success:
            self._revert(self.old_value)

with disable_file_system_redirection():
    cmd = 'cscript "'+filepath+'"'
    obj = subprocess.Popen(cmd, shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
    out, err = obj.communicate()
    if err:
        print(err)
    else:
        print(out)
        print ('Team viewer uninstalled successfully')
    
try:
    os.remove(filepath)
except:
    pass
