Получение handle процесса по его имени
Или поставим вопрос шире: как убить процесс по его имени?
И еще
Как проверить наличие в памяти чужого процесса? Зная его имя.
Какой функцией это можно сделать?
Или поставим вопрос шире: как убить процесс по его имени?
И еще
Как проверить наличие в памяти чужого процесса? Зная его имя.
кинь пробное письмо на [email]man@kiev.vectis.ru[/email] - вышлю тебе свою утилитку, к-я косит процесс по имени его EXE-шника. Правда на делфи, облом переписывать на Си... сам переведешь?
btw, утилитка работает и под 9x и под NT/2K
Какой функцией это можно сделать?
Или поставим вопрос шире: как убить процесс по его имени?
И еще
Как проверить наличие в памяти чужого процесса? Зная его имя.
В папке, где установлен у тебя C++Builder5 есть пример отслеживания процессов и их уничтожения. Вот эта папочка с примером, надеюсь разберешься:
ExamplesAppsProcview
Если у тебя нет C++Builder, то могу выслать пример.
Уже придумал, как это сделать с помощью snapshot'ов
попробуй заставить snapshot под NT :D
MSDN: есть такая функция FindWindow называется, вот она как раз возвращает хендл по имени окна! RTFM.
Т.е. ты считаешь, что процесс и окно это одно и тоже, и что хендл окна тоже самое, что и хендл процесса? :D :D :D
Можно получить только идент-р потока и процесса, связанного с этим окном (GetWindowThreadProcessId)и ничего больше из хендла окна не вытянешь 8-)
Потом конечно можно OpenProcecc по его идент-ру, но это уже другой вопрос. Оригинальный вопрос в том, как получить по имени процесса (если он не имеет окон). Так вот в W98 есть такая фигня, к-я называется CreateToolhelp32Snapshot (из Tlhelp32.dll - там еще много полезного), только в NT/2K это уже не катит, и список процессов можно получить через реестр (где искать знаю, но так и не нашел формата стр-р :-( или через NtQuerySystemInformation, но это долго рассказывать - кому надо мыльте мне - вышлю текст. Проще всего найти NT SDK, в к-й есть библиотека psapi.dll (кажется) - это что-то вроде tlhelp32.dll под NT
Интересно было бы посмотреть, как по окну получить хендл процесса :D
Можно получить только идент-р потока и процесса, связанного с этим окном (GetWindowThreadProcessId)и ничего больше из хендла окна не вытянешь 8-)
Потом конечно можно OpenProcecc по его идент-ру, но это уже другой вопрос. Оригинальный вопрос в том, как получить по имени процесса (если он не имеет окон). Так вот в W98 есть такая фигня, к-я называется CreateToolhelp32Snapshot (из Tlhelp32.dll - там еще много полезного), только в NT/2K это уже не катит, и список процессов можно получить через реестр (где искать знаю, но так и не нашел формата стр-р :-( или через NtQuerySystemInformation, но это долго рассказывать - кому надо мыльте мне - вышлю текст. Проще всего найти NT SDK, в к-й есть библиотека psapi.dll (кажется) - это что-то вроде tlhelp32.dll под NT
Про CreateToolhelp32Snapshot в 2К ты неправ, см. MSDN:
Requirements
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.
Про CreateToolhelp32Snapshot в 2К ты неправ, см. MSDN:
Requirements
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.
!!!
КАЮСЬ :-o
Я не пользовался этой ф-ей, когда перешел с 98 на NT и представляешь - не обратил внимание на MSDN :)
Green - ты мужик толковый - зайди на "Низкоуровневое программирование" - там мой вопрос "Инъекции". Может подскажешь чего? :)