home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2567 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  1.3 KB  |  48 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import win32api
  5. import win32pdhutil
  6. import win32con
  7. import sys
  8.  
  9. def killProcName(procname):
  10.     
  11.     try:
  12.         win32pdhutil.GetPerformanceAttributes('Process', 'ID Process', procname)
  13.     except:
  14.         pass
  15.  
  16.     pids = win32pdhutil.FindPerformanceAttributesByName(procname)
  17.     
  18.     try:
  19.         pids.remove(win32api.GetCurrentProcessId())
  20.     except ValueError:
  21.         pass
  22.  
  23.     if len(pids) == 0:
  24.         result = "Can't find %s" % procname
  25.     elif len(pids) > 1:
  26.         result = "Found too many %s's - pids=`%s`" % (procname, pids)
  27.     else:
  28.         handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, pids[0])
  29.         win32api.TerminateProcess(handle, 0)
  30.         win32api.CloseHandle(handle)
  31.         result = ''
  32.     return result
  33.  
  34. if __name__ == '__main__':
  35.     if len(sys.argv) > 1:
  36.         for procname in sys.argv[1:]:
  37.             result = killProcName(procname)
  38.             if result:
  39.                 print result
  40.                 print 'Dumping all processes...'
  41.                 win32pdhutil.ShowAllProcesses()
  42.                 continue
  43.             print 'Killed %s' % procname
  44.         
  45.     else:
  46.         print 'Usage: killProcName.py procname ...'
  47.  
  48.