Уведомления

Группа в Telegram: @pythonsu

#1 Март 8, 2013 16:14:50

las.90
Зарегистрирован: 2013-03-08
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Системный скрипт

Уважаемые гуру 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
>>>

Офлайн

#2 Март 9, 2013 11:17:26

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Системный скрипт

Все процессы

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()
Есть еще программулька WMI Code Generator 8.00
качаешь ее
выбираешь генерацию скриптов на Python…и генериш,там все должно быть

Отредактировано sanodin (Март 9, 2013 11:53:51)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version