Получаем список процессов

Предыдущая тема Следующая тема Перейти вниз

Получаем список процессов

Сообщение  electrik в Чт Июл 02, 2009 6:54 pm

вот вам програмка. выводит список процессов. поповоду функций, можете посмотреть в firststeps или вбив в поисковик слово "функция" и название функции. точно чего-нибудь найдете.

Код:

#include "windows.bi"
#include "win/tlhelp32.bi"
dim count as integer = 0 ' счетчик
dim hSnap as HANDLE ' хэндл снимка процессов
dim proc as PROCESSENTRY32 ' структура PROCESSENTRY32
   hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) ' сделаем снимок процессов
       if hSnap = NULL then ' если ошибка
print "Error Load ToolHelp"
else
proc.dwSize = sizeof(PROCESSENTRY32) ' обязательно нужно заполнить размер структуры PROCESSENTRY32
           if Process32First(hSnap, @proc) then ' если есть первый процесс
                                      print proc.szExeFile ' отображаем имя процесса
count+=1 ' добавим к счетчику 1
                while Process32Next(hSnap, @proc) ' пока есть следующие процессы
                if count = 23 then ' если экран забит на 23 строки
print "Press any key"
            sleep
            cls ' сотрем экран
            count = 0 ' обнулим счетчик
        end if
        print proc.szExeFile ' отображаем процессы
        count+=1 ' добавляем к счетчику 1
        wend
    end if
            end if
        print "Press any key to exit"
        sleep

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 37
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Получаем список процессов

Сообщение  electrik в Ср Июл 08, 2009 10:10 pm

Продолжаем изучать возможности ToolHelp.Dll. Давайте создадим консольное приложение и сразу код:

Код:

#include "windows.bi"
#include "win/tlhelp32.bi"
dim count as integer = 0 ' счетчик
dim hSnap as HANDLE = NULL ' хэндл снимка процессов
dim te32 as THREADENTRY32 ' структура THREADENTRY32
   hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0) ' сделаем снимок процессов
       if hSnap <> NULL then ' если не ошибка
      te32.dwSize = sizeof(THREADENTRY32) ' обязательно надо заполнить размер структуры THREADENTRY32
        if Thread32First(hSnap, @te32) then
              print te32.th32ThreadID," ",te32.th32OwnerProcessID
count+=1 ' добавим к счетчику 1
                         while Thread32Next(hSnap, @te32)
                if count = 23 then ' если экран забит на 23 строки
print "Press any key"
            sleep
            cls ' сотрем экран
            count = 0 ' обнулим счетчик
        end if
        print te32.th32ThreadID," ",te32.th32OwnerProcessID
        count+=1 ' добавляем к счетчику 1
        wend
    end if
            end if
           CloseHandle(hSnap)
        print "Press any key to exit"
        sleep

Методика таже самая. Соединяемся с ToolHelp, только теперь смотрим Thread32First() и Thread32Next(), которые возвращают результат в структуру THREADENTRY32,
из которой я пока извлек два параметра. Это идентификатор потока th32ThreadID и процесса, который этот поток породил th32OwnerProcessID и Вы увидите, что
у процесса много потоков.
эти материалы я беру с
http://firststeps.ru
и оптимизирую под FreeBasic

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 37
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения