Форум сайта python.su
Может быть кто подскажет как получить
список запущенных программ в питоне на WINDOWS?
На мобильном питоне это appswitch.application_list(0).
Модуля appswitch на компе нет, а в интернете че-то не нахожу.
Очень расчитываю на помощ. :)
Отредактировано (Апрель 8, 2009 05:50:20)
Офлайн
В разных системах по-разному.
Офлайн
я на WMI делал http://www.script-coding.info/Python/wmi.html
Офлайн
А без сторонних модулей получить список запущенных программ никак нельзя?
Может кто-нибудь знает хоть в каком модуле (из встроенных) искать?
Просто программой будет пользоваться человек, не связанный с программированием,
и неохота ему обьяснять как ставить сторонние модули. :)
Офлайн
lioshaПочитать что-нибудь по winapi :)
А без сторонних модулей получить список запущенных программ никак нельзя?
from ctypes import *
CreateToolhelp32Snapshot = windll.kernel32.CreateToolhelp32Snapshot
Process32First = windll.kernel32.Process32First
Process32Next = windll.kernel32.Process32Next
TH32CS_SNAPPROCESS = 0x02L
class PROCESSENTRY32 (Structure) :
_fields_ = [("dwSize", c_ulong),
("cntUsage", c_ulong),
("th32ProcessID", c_ulong),
("th32DefaultHeapID", c_ulong),
("th32ModuleID", c_ulong),
("cntThreads", c_ulong),
("th32ParentProcessID", c_ulong),
("pcPriClassBase", c_ulong),
("dwFlags", c_ulong),
("szexeFile", c_char * 260)
]
def GetProcessList () :
pe32 = PROCESSENTRY32()
pe32.dwSize = sizeof(PROCESSENTRY32)
result = []
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
ok = Process32First(snapshot, byref(pe32))
while ok :
# выбираем поля, которые считаем нужными
result.append((pe32.szexeFile, pe32.th32ProcessID, pe32.th32ParentProcessID, pe32.cntThreads))
ok = Process32Next(snapshot, byref(pe32))
win32file.CloseHandle(snapshot)
return result
Отредактировано (Апрель 9, 2009 12:39:44)
Офлайн
на линухе - командой ps:
import subprocess
proc_list = subprocess.Popen('ps -A -o comm', shell=True, stdout=subprocess.PIPE).communicate()[0].split('\n')[1:]
Отредактировано (Апрель 9, 2009 12:48:50)
Офлайн
Спасибо всем огромное!!!
Жаль незнаю как тут ставить плюсики(и можно ли вообще)
Офлайн