Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка родителя, запускаться определенным процессом 
:(
    Опции темы
Romero
Дата 3.3.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.6.2005

Репутация: 1
Всего: 1



Хочу завершать мое приложение, если оно запущенно не заданным процессом.
Лезет в голову получить PID своего родителя и сравнить инфу о нем с нужной. Но что именно сравнивать? Не имя же исполняемого файла? Какие есть наработки?
И, кстати, как узнать pid родителя моего приложения? Как это сделать для любого процесса через CreateToolhelp32Snapshot, я знаю. Не хотелось бы перебирать все процессы в поиске своего, чтобы затем просмотреть его инфо.
PM   Вверх
dumb
Дата 4.3.2008, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(Romero @  3.3.2008,  21:10 Найти цитируемый пост)
Как это сделать для любого процесса через CreateToolhelp32Snapshot, я знаю.
так и делай. более простого пути нет.

Цитата(Romero @  3.3.2008,  21:10 Найти цитируемый пост)
Но что именно сравнивать?
сравнивай хэш(crc32,md5,...) файла(или кодовой секции).
PM MAIL   Вверх
Romero
Дата 4.3.2008, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.6.2005

Репутация: 1
Всего: 1



Запускающее приложение может меняться, хеш-функцию считать проблематично.
PM   Вверх
dumb
Дата 4.3.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



вообще это приложение - своя/дружественная разработка или совсем сторонняя?
без этой инфы - единственная пока рекомендация: проверять какую-либо сигнатурку в запускающем образе.
PM MAIL   Вверх
Romero
Дата 5.3.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.6.2005

Репутация: 1
Всего: 1



Возможны оба варианта. В своей разработке я бы сообщениями обменялся.
PM   Вверх
Rennigth
Дата 5.3.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(Romero @  5.3.2008,  14:34 Найти цитируемый пост)
В своей разработке я бы сообщениями обменялся. 

Лутше уж создавать уникальный именованный наследуемый объкт ядра.

Если чужое, то думаю все-таки самое логичное всеже это сначала банально проверять имя процесса(этот просто быстро, а отсеет 99% левых), а потом 

Цитата(dumb @  4.3.2008,  07:18 Найти цитируемый пост)
сравнивай хэш(crc32,md5,...) файла(или кодовой секции). 




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
RinOSpro
Дата 5.3.2008, 17:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Когда запускает родитель то пускай он мьютекс создает а запускаемое приложение проверяет
или передавай параметр генерируемый автоматический к примеру время+чтото+чтото
  Вверх
Rennigth
Дата 5.3.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



P.S. 
Цитата(Romero @  4.3.2008,  08:00 Найти цитируемый пост)
Запускающее приложение может меняться, хеш-функцию считать проблематично. 

Если версии запускаемого процесса могут быть разными придеться знать хеши всех версий. Как вариант можно попробовать искать в образе процесса что-то уникальное что не будет меняться от версии к версии. 



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Romero
Дата 6.3.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.6.2005

Репутация: 1
Всего: 1



Спасибо за советы.
А насчет
Цитата(dumb @  4.3.2008,  07:18 Найти цитируемый пост)
так и делай. более простого пути нет.

как-то странно. Неужели нет API-функций, возвращающих PID родителя приложения?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.