Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать запушена ли программа написанная на winapi [D6, Win2k]


dream ©   (2003-11-06 11:26:00) 

Простые программы можно найти так FindWindow("TxGg_cl",nil)
Но это те программы которые имеют окна , а если программа не имеет окна ? написанна на winapi .

Подскажите пожайлуста


dream   (2003-11-06 12:43:00) [1]

Всем спасибо ! буду пробывать


Юрий Зотов   (2003-11-06 12:41:00) [2]

> dream (06.11.03 12:37) [13]

Тогда, во-первых, задавайте вопросы так, чтобы Вас правильно и ТОЧНО поняли. Во-вторых, можно использовать не только мьютексы, а вообще любые объекты ядра. В-третьих, см. сюда:
http://www.delphikingdom.ru/helloworld/samples_win.htm#link11


dream   (2003-11-06 12:41:00) [3]

нет просто без окон та программа которая делает обновление основного EXE файла , тут же есть сервис который проверяет находиться ли в памяти главная программа EXE и при её отсутствии загружает её в память , но если проводить обновление то Основная программа будет выключена ( то есть будет обновляться ) и если в это время её запустит сервис то все усилия по обнавлению сведуться на нет ! так что я хотел реализовать в сервисе проверку работает ли обновляющая программа ( то есть прога на winapi ) !

Вот так


Fiend   (2003-11-06 12:40:00) [4]

То Юрий Зотов © (06.11.03 12:38) [14]
он всё же признался в деталях ;)
(
> dream (06.11.03 12:37) [13]
)


Fiend   (2003-11-06 12:39:00) [5]

То dream (06.11.03 12:37) [13]
значит я всё же правильно понял вопрос. В чём тогда загвоздка? Примеров валом


Юрий Зотов   (2003-11-06 12:38:00) [6]

> Fiend © (06.11.03 12:35) [12]

Я не знаю, верно ли Вы поняли вопрос, или неверно. Автор этого не уточняет. Но сам вопрос звучит так: "Как узнать запушена ли программа написанная на winapi". Здесь нет ни слова о том, что программа именно своя и что надо блокировать ее повторный запуск. Не прозвучало этого и в обсуждении.


dream   (2003-11-06 12:37:00) [7]

> Юрий Зотов

> Разве все программы обязаны создавать мьютексы?

Программа без окон тожк моя разработка , так что можно попробывать и с Мьютексами


Fiend   (2003-11-06 12:35:00) [8]

То Юрий Зотов © (06.11.03 12:33) [11]
Ну я так понял из вопроса что софт написан автором же, посему вставить в него кусок кода несложно. К тому же софт, опять же насколько я понял, должен блокировать повторный запуск себя а не кого то другого.
или я неверно понял вопрос???


Юрий Зотов   (2003-11-06 12:33:00) [9]

> Fiend © (06.11.03 12:27) [10]

Никто не мешает. Это стандартный способ блокировки повторного запуска СВОЕЙ программы.

Но кто сказал, что это поможет найти произвольную запущенную программу? Разве все программы обязаны создавать мьютексы?


Fiend   (2003-11-06 12:27:00) [10]

То Юрий Зотов © (06.11.03 12:17) [8]
Кто мешает при запуске софта первым делом проверять существует ли в системе Мьютекс с таким то имененм, где имя какая либо уникальная строка. Если его нет, то продолжаем загрузку. Иначе прерываемся.
Что сложного или неприменимого???


Юрий Зотов   (2003-11-06 12:19:00) [11]

> dream (06.11.03 12:15) [7]

> Это мысль!
Безусловно. Но не имеющая к вопросу никакого отношения.

> но Мьютекс не надёжен ! сам не раз убеждался
Есть такой драйвер - руки.sys. И иногда он бывает кривым. Но мьютексы в этом не виноваты.


Юрий Зотов   (2003-11-06 12:17:00) [12]

> Fiend © (06.11.03 12:10) [6]

И как же его в этой ситуации пользовать?
И для чего?
И что он даст?
И как это поможет решить задачу?
И для чего вводить людей в заблуждение?


dream   (2003-11-06 12:15:00) [13]

> Fiend

Это мысль ! но Мьютекс не надёжен ! сам не раз убеждался


Fiend   (2003-11-06 12:10:00) [14]

Пользуй Мьютекс.


Vorobyev Sergey   (2003-11-06 11:55:00) [15]

Давай просто логически подумаем:
Программа это что - это процесс, и ничего другого она представлять не может.
Значит надо искать среди процессов..
Т.к. FindProcess вроде бы не существует, то только с помощью методики от [1] han-bratan (06.11.03 11:29)


> Я в пришципе могу так сделать но считаю что это не выход
>

Если сможешь, сделай.. Что значит не выход? Это и есть выход..
Медленно, не думаю..


dream   (2003-11-06 11:49:00) [16]

> Dima_dvp

Это то я знаю ! а есть ли что то наподобии Findproces ?


Dima_dvp   (2003-11-06 11:46:00) [17]

FindWindow переводиться найти окно - сам подумай возможно ли найти окно которого нет.....


dream   (2003-11-06 11:31:00) [18]

> han-bratan

А попроще никак нельзя ? Я в пришципе могу так сделать но считаю что это не выход

Толи код if FindWindow("TxGg_cl",nil) = 0 then

либо твоим советом код займёт 10 - 20 строчек + потеряет функциональность !


han-bratan   (2003-11-06 11:29:00) [19]

нНужно перечислить все процессы в системе, получить имя файла который вызвал этот процесс, и сравнить имя икомой проги со всеми именами файлов-процессов уже запущенных.


Наверх

Титульная страница Поиск, карта сайта Написать письмо