Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать..

6.1K
04 января 2004 года
Skyman
3 / / 03.01.2004
запущен ли в данное время определенный файл (екзешник)? :)
1.9K
06 января 2004 года
AviDen
91 / / 26.12.2003
Цитата:
Originally posted by Skyman
запущен ли в данное время определенный файл (екзешник)? :)




Простого пути не знаю, зато есть сложный (ведь трудности для того и существуют, чтобы их преодолевать):
1) создаешь снимок текущего состояния системы функцией CreateToolhelp32Snapshot с флагом TH32CS_SNAPPROCESS
2) с пом. ф-ций Process32First и Process32Next проверяешь все процессы системы. Эти функции заполняют структуру PROCESSENTRY32, в ней есть член szExeFile - вот его и тести.
3) Если этот файл не является исходным модулем процесса, а только используемым (напр., DLL) - тогда действий в п.2 недостаточно. Тогда по каждому процессу из п.2 создается список используемых им модулей все той же функцией CreateToolhelp32Snapshot, но уже с флагом TH32CS_SNAPMODULE + во втором параметре передаешь PROCESSENTRY32.th32ProcessID из п.2.
4) Итерируешь в полученном списке с пом. функций Module32First и Module32Next, которые заполняют тебе структуру MODULEENTRY32 - в ней проверяешь члены szModule и szExePath.

Чиркнешь, как оно получилось! ;)

448
08 января 2004 года
Mr. API
105 / / 20.06.2000
Цитата:
Originally posted by AviDen



Простого пути не знаю, зато есть сложный (ведь трудности для того и существуют, чтобы их преодолевать):
1) создаешь снимок текущего состояния системы функцией CreateToolhelp32Snapshot с флагом TH32CS_SNAPPROCESS
2) с пом. ф-ций Process32First и Process32Next проверяешь все процессы системы. Эти функции заполняют структуру PROCESSENTRY32, в ней есть член szExeFile - вот его и тести.
3) Если этот файл не является исходным модулем процесса, а только используемым (напр., DLL) - тогда действий в п.2 недостаточно. Тогда по каждому процессу из п.2 создается список используемых им модулей все той же функцией CreateToolhelp32Snapshot, но уже с флагом TH32CS_SNAPMODULE + во втором параметре передаешь PROCESSENTRY32.th32ProcessID из п.2.
4) Итерируешь в полученном списке с пом. функций Module32First и Module32Next, которые заполняют тебе структуру MODULEENTRY32 - в ней проверяешь члены szModule и szExePath.

Чиркнешь, как оно получилось! ;)



Функции ToolHelp32 доступны только в Win9x. Их использование под WinNT приведет к ошибке. Под NT следует использовать PSAPI.

1.9K
09 января 2004 года
AviDen
91 / / 26.12.2003
Цитата:
Originally posted by Mr. API


Функции ToolHelp32 доступны только в Win9x. Их использование под WinNT приведет к ошибке. Под NT следует использовать PSAPI.



PSAPI не пользовался, да и ToolHelp под NT, честно говоря, не тестил. Тем не менее в MSDN (за апрель 2003 года) указано, что ToolHelp32-функции поддерживаются на следующих системах:

Requirements
Client:
Included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.

448
09 января 2004 года
Mr. API
105 / / 20.06.2000
Цитата:
Originally posted by AviDen


PSAPI не пользовался, да и ToolHelp под NT, честно говоря, не тестил. Тем не менее в MSDN (за апрель 2003 года) указано, что ToolHelp32-функции поддерживаются на следующих системах:

Requirements
Client:
Included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.



Это верно. ToolHelp нет в NT. Но потом Microsoft добавила их в Win2000.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог