Форум сайта python.su
Уважаемые гуру pythona, прошу у вас помощи в следующем вопросе. Требуется скрипт который будет выводить имя компьютера, версию OS, ip компьютера, количество ядер, размер CPU и список запущенных процессов !!!
В части phytona новичок поэтомиу удалось получить только вот что, сам Скрипт:
import socket, os, sys, platform, subprocess, string, commands
print(socket.gethostbyname(socket.gethostname()))
print(os.name)
print(sys.platform)
#print(os.uname)
print(platform.platform())
#print (sys.CPU)1
#print (os.memory_size)
Результат:
Python 2.7.3 (default, Apr 10 2012, 23:24:47) on win32
Type “copyright”, “credits” or “license()” for more information.
>>> ================================ RESTART ================================
>>>
192.168.191.1
nt
win32
Windows-7-6.1.7601-SP1
>>>
Офлайн
Все процессы
import win32com.client wmi=win32com.client.GetObject('winmgmts:') for p in wmi.InstancesOf('win32_process'): print p.Name, p.Properties_('ProcessId'), \ int(p.Properties_('UserModeTime').Value)+int(p.Properties_('KernelModeTime').Value) children=wmi.ExecQuery('Select * from win32_process where ParentProcessId=%s' %p.Properties_('ProcessId')) for child in children: print '\t',child.Name,child.Properties_('ProcessId'), \ int(child.Properties_('UserModeTime').Value)+int(child.Properties_('KernelModeTime').Value)
from ctypes import * #PSAPI.DLL psapi = windll.psapi #Kernel32.DLL kernel = windll.kernel32 def EnumProcesses(): arr = c_ulong * 256 lpidProcess= arr() cb = sizeof(lpidProcess) cbNeeded = c_ulong() hModule = c_ulong() count = c_ulong() modname = c_buffer(30) PROCESS_QUERY_INFORMATION = 0x0400 PROCESS_VM_READ = 0x0010 #Call Enumprocesses to get hold of process id's psapi.EnumProcesses(byref(lpidProcess), cb, byref(cbNeeded)) #Number of processes returned nReturned = cbNeeded.value/sizeof(c_ulong()) pidProcess = [i for i in lpidProcess][:nReturned] for pid in pidProcess: #Get handle to the process based on PID hProcess = kernel.OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, False, pid) if hProcess: psapi.EnumProcessModules(hProcess, byref(hModule), sizeof(hModule), byref(count)) psapi.GetModuleBaseNameA(hProcess, hModule.value, modname, sizeof(modname)) print "".join([ i for i in modname if i != '\x00']) #-- Clean up for i in range(modname._length_): modname[i]='\x00' kernel.CloseHandle(hProcess) if __name__ == '__main__': EnumProcesses()
Отредактировано sanodin (Март 9, 2013 11:53:51)
Офлайн