![]() |
|
Модераторы: bsa |
![]()
|
|
| LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: нет Всего: 4 |
Eсть некая программа, скажем- Pump.exe Как, зная ее имя, определить из своего приложения, запущена она или нет. Среда программирования - C++ Builder 2007.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Это сообщение отредактировал(а) borisbn - 6.4.2012, 11:35 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
Многа букф, достаточно попытаться открыть файл на запись.
-------------------- |
|||
|
||||
| LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: нет Всего: 4 |
Спасибо..осталось только с WinAPI разобраться.. а можно поянить что за класс (структура) PROCESSENTRY32?
|
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
TlHelp32.h структура описана
-------------------- |
|||
|
||||
| LOPUH |
|
||||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: нет Всего: 4 |
эмм..Как то так?
или результатом должно быть исключение? Это сообщение отредактировал(а) LOPUH - 6.4.2012, 13:02 |
||||
|
|||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
LOPUH
если файл запущен, то есть есть процесс pump.exe на запись ты его не откроеш. Выдаст ошибку. Там не 0 вернется а INVALID_HANDLE_VALUE. Это сообщение отредактировал(а) 500mhz - 6.4.2012, 12:44 -------------------- |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
а если расположение файла неизвестно ? 500mhz, вот не помню... а если процесс не запущен, то не убъёт ли файл ? т.е. не обнулит ли ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| 500mhz |
|
||||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
ну это уже второй вопрос ))) кстате там есть апишка что типа getmodulename вроде, по id имя выдает, можно тупо перебрать все id и сравнить имя.
я не знаю как там fopen,"w" интерпретируется в createfile, но если createfile вызывается с OPEN_EXISTING , то файл не обнуляется/создается,а просто будет попытка открытия его. -------------------- |
||||
|
|||||
| LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: нет Всего: 4 |
не убъёт ли файл ? т.е. не обнулит ли ?[/QUOTE] Спасибо, верное замечание тут наверно должен быть модификатор не "w", а "a", то есть попытаться открыть файл для записи в конец.. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
тогда уж лучше через CreateFile, как 500mhz сказал
а это - не -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
borisbn
Твой способ с if ( std::string( "Pump.exe" ) == std::string( pe32.szExeFile ) ) некошерен ))) А вдруг хитрый ехешник в PEB имя свое поменял? И стал pamella.jpeg -------------------- |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
А вдруг файл открыт эксклюзивно, но не запущен?
-------------------- Обижено школьников: 8 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
bems,
ну ехе обычно или запущен или нет ) а просто так его никто не открывает. -------------------- |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
Простейший пример - две программы использующие твой способ, запущенные одновременно. Но если ты не видишь ничего плохого в коде который почти работает, то что мне, больше всех надо чтоли
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |