Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2009 21:59:52

liosha
От:
Зарегистрирован: 2009-04-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запущенные программы

Может быть кто подскажет как получить
список запущенных программ в питоне на WINDOWS?
На мобильном питоне это appswitch.application_list(0).
Модуля appswitch на компе нет, а в интернете че-то не нахожу.
Очень расчитываю на помощ. :)



Отредактировано (Апрель 8, 2009 05:50:20)

Офлайн

#2 Апрель 8, 2009 00:14:46

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Запущенные программы

В разных системах по-разному.

Офлайн

#3 Апрель 8, 2009 19:55:41

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Запущенные программы

Офлайн

#4 Апрель 9, 2009 05:54:32

liosha
От:
Зарегистрирован: 2009-04-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запущенные программы

А без сторонних модулей получить список запущенных программ никак нельзя?
Может кто-нибудь знает хоть в каком модуле (из встроенных) искать?
Просто программой будет пользоваться человек, не связанный с программированием,
и неохота ему обьяснять как ставить сторонние модули. :)



Офлайн

#5 Апрель 9, 2009 12:38:05

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Запущенные программы

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
версия Python'а не ниже 2.5



Отредактировано (Апрель 9, 2009 12:39:44)

Офлайн

#6 Апрель 9, 2009 12:47:40

qwer
От:
Зарегистрирован: 2009-03-30
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Запущенные программы

на линухе - командой ps:

import subprocess
proc_list = subprocess.Popen('ps -A -o comm', shell=True, stdout=subprocess.PIPE).communicate()[0].split('\n')[1:]
на винде - tasklist, запускать таким же методом и парсить результат.



Отредактировано (Апрель 9, 2009 12:48:50)

Офлайн

#7 Апрель 9, 2009 17:59:47

liosha
От:
Зарегистрирован: 2009-04-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Запущенные программы

Спасибо всем огромное!!!
Жаль незнаю как тут ставить плюсики(и можно ли вообще)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version