получить все ХАНДЛЫ

Тема в разделе "WASM.BEGINNERS", создана пользователем AHTOLLlKA, 8 авг 2005.

  1. AHTOLLlKA

    AHTOLLlKA New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    7
    Как можно получить весь список хандлов как это делает программа Process Explorer?

    как реализовать это на делфи



    мне надо чтоб было примерно так:

    http://www.sysinternals.com/Files/Handle.zip
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    AHTOLLlKA

    1) почитай Неббета, там описано перечисление хэндлов процесса.

    2) поищи по этому форуму, тема обсуждалась.

    3) поищи по этому форуму, там есть программа с исходниками, аналогичная Handle.

    4) на делфи переведёшь сам.
     
  3. AHTOLLlKA

    AHTOLLlKA New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    7
    где Неббета слить
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
  5. AHTOLLlKA

    AHTOLLlKA New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    7
    на этом форуме поиском мало чё нашёл

    и на rsdn тоже... хоят есть пимер там нужный мне

    но всеж он не такой как оригинал

    ещё хочу узнать как также получить список всех thread'ов

    в поиске искал и ненашёл....
     
  6. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    наверное надо юзать ZwQueryInformationProcess
     
  7. AHTOLLlKA

    AHTOLLlKA New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    7
    а примера нету ??
     
  8. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    На wasm'e я когдато тему заводил - вот она

    вот впринципе необходимые функции.

    Тока не знаю, наверное это не, так, как это ProcessExplorer делает.

    Но список процессов находит.



    CreateToolhelp32Snapshot

    Process32First

    Process32Next



    Надо поискать, может у меня и исходник моей искалки остался...
     
  9. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    Вот, шустро написал(5 минут, поэтому такой убогий...)


    Код (Text):
    1. extrn CreateToolhelp32Snapshot:proc
    2. extrn Process32First:proc
    3. extrn Process32Next:proc
    4. extrn MessageBoxA:proc
    5.  
    6. TH32CS_SNAPHEAPLIST     equ 1
    7. TH32CS_SNAPPROCESS      equ 2
    8. TH32CS_SNAPTHREAD       equ 4
    9. TH32CS_SNAPMODULE       equ 8
    10. TH32CS_SNAPALL          equ TH32CS_SNAPHEAPLIST + TH32CS_SNAPPROCESS + TH32CS_SNAPTHREAD + TH32CS_SNAPMODULE
    11. TH32CS_INHERIT          equ 80000000h
    12. HF32_DEFAULT            equ 1
    13. HF32_SHARED             equ 2
    14.  
    15. .386
    16. .model flat
    17. .data
    18. xxx db 'WS',0
    19. result_data:
    20.   dwSize        dd 0
    21.   cntUsage      dd 0
    22.   th32ProcessID     dd 0
    23.   th32DefaultHeapID dd 0
    24.   th32ModuleID      dd 0
    25.   cntThreads        dd 0
    26.   th32ParentProcessID   dd 0
    27.   pcPriClassBase    dd 0
    28.   dwFlags       dd 0
    29.   szExeFile     db 260 dup (0)
    30. end_data:
    31. .code
    32. begin:
    33.     push 0
    34.     push TH32CS_SNAPALL
    35.     call CreateToolhelp32Snapshot
    36.     cmp eax,-1
    37.     je xep_1
    38.     xchg eax,ebx
    39.  
    40.     mov 4 ptr [dwSize],offset end_data - offset result_data
    41.  
    42.     push offset [result_data]
    43.     push ebx
    44.     call Process32First
    45. xep_2:  cmp eax,-1
    46.     je xep_1
    47.  
    48.     push 0
    49.     push offset szExeFile
    50.     push offset xxx
    51.     push 0
    52.     call MessageBoxA
    53.  
    54.     push offset result_data
    55.     push ebx
    56.     call Process32Next
    57.     jmp xep_2
    58. xep_1:
    59.     ret
    60. end begin




    Ищет все запущенные процессы. Код кривой, косой, тупой...

    Но для примера сойдет. Работает. ТАСМ32.