From ff618a541a0b45b84b2495b2f87430ce28baf318 Mon Sep 17 00:00:00 2001
From: Nikita Nemkin <nikita@nemkin.ru>
Date: Thu, 2 Jun 2011 01:19:44 +0600
Subject: [PATCH] Replaced WMI process enumeration with the EnumProcesses API call.
 (Shorter, faster, does not depend on pythoncom.)

---
 deluge/core/daemon.py |    9 ++-------
 1 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/deluge/core/daemon.py b/deluge/core/daemon.py
index 0343feb..c6e63a8 100644
--- a/deluge/core/daemon.py
+++ b/deluge/core/daemon.py
@@ -66,13 +66,8 @@ def __init__(self, options=None, args=None, classic=False):
 
             def process_running(pid):
                 if deluge.common.windows_check():
-                    # Do some fancy WMI junk to see if the PID exists in Windows
-                    from win32com.client import GetObject
-                    def get_proclist():
-                        WMI = GetObject('winmgmts:')
-                        processes = WMI.InstancesOf('Win32_Process')
-                        return [process.Properties_('ProcessID').Value for process in processes]
-                    return pid in get_proclist()
+                    import win32process
+                    return pid in win32process.EnumProcesses()
                 else:
                     # We can just use os.kill on UNIX to test if the process is running
                     try:
-- 
1.7.3.1.msysgit.0

