Thomas Nelson wrote: [... re Access Denied error on trying to TerminateProcess ...]
[Tim Golden] >> I suppose you might have to adjust your token privs to include, >> say the Debug priv. This is designed to let you take control >> of any process (and terminate it, or whatever). If it looks >> like you need to do that, post back and I -- or someone else -- >> can try to run up an example. [Thomas Nelson] > I Tried the PID method, and the Taskkill method, and neither worked. > This is what I get for trying to work on a windows machine. If you > could explain how to add the debug privilege, that would be great. OK, this being Windows security, there's a couple of hoops to jump through, but nothing too bad. <code> import win32api import win32security as sec # # This function is merely window-dressing # to make it easier to see whether the # code has worked or not. # def priv_status (hToken, priv): for p, status in sec.GetTokenInformation ( hToken, sec.TokenPrivileges ): if p == priv: if status == 0: return "disabled" else: return "enabled" else: return "disabled" process = win32api.GetCurrentProcess () token_access_flags = sec.TOKEN_ADJUST_PRIVILEGES | sec.TOKEN_QUERY hToken = sec.OpenProcessToken (process, token_access_flags) debug_priv = sec.LookupPrivilegeValue (None, sec.SE_DEBUG_NAME) print "Debug is", priv_status (hToken, debug_priv) privs = [(debug_priv, sec.SE_PRIVILEGE_ENABLED)] sec.AdjustTokenPrivileges (hToken, 0, privs) print "Debug is", priv_status (hToken, debug_priv) </code> > Just out of curiosity, is there a reason a python module like os > couldn't have a universal terminateProcess type function, that works > on all systems? Something like os.listdir seems to work really well > everywhere. Maybe killing processes is too complicated for this? Not to say that there could never be one, but I suspect that the difference of APis and the number of corner cases makes it a daunting task for maintenance. The code would have to work on every platform Python works on -- which is no small number -- and would have to be maintained across the many and varied changes on each of those platforms. Still, if you think you're in with a chance, go ahead and offer :) Let us know if the DEBUG priv thing works or not. TJG -- http://mail.python.org/mailman/listinfo/python-list