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

Ваш аккаунт

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

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

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

Как отследить, запущено ли приложение?

Аноним
Помогите! Необходимо поставить защиту от юзера, что бы прога второй раз не запускалась.... Любыми средствами (Delphi или Win32)
Аноним
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-09-12 17:40, Anonymous wrote:
Помогите! Необходимо поставить защиту от юзера, что бы прога второй раз не запускалась.... Любыми средствами (Delphi или Win32)
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Создай именованный mutex (раздел Win32.hlp &quot;Synchronization&quot;) и проверяй его - он виден во всех процессах
624
27 сентября 2001 года
HollyBlood
44 / / 20.06.2000
[quote]
On 2001-09-19 2159, Anonymous wrote
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-09-12 1740, Anonymous wrote
Помогите! Необходимо поставить защиту от юзера, что бы прога второй раз не запускалась.... Любыми средствами (Delphi или Win32)
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Можно воспользоваться функцией API FiwndWindow. И проверять есть ли уже окно с нужным заголовком и нужного класса.



[ Это Сообщение было отредактировано HollyBlood в 2001-09-26 2219 ]
449
27 сентября 2001 года
Fantasist
124 / / 20.06.2000
Где-то на http//www.sources.ru eсть.
448
02 октября 2001 года
Mr. API
105 / / 20.06.2000
Использование FindWindow имеет несколько недостатков.
1) Искать по имени класса не может быть надежным решением. Потому что, нет гарнтии, что имя класса уникально в системе.
2) По заголовку окна. Но заколовок в процессе работы может изменятся. И окон с таким названием может быть несколько.

Лучше использовать мьютексы.

Экземпляры приложения должны попытаться открыть мьютекс (функция OpenMutex).
Эта функция выполнится успешно, только тогда, когда мьютекс был уже создан при помощи CreateMutex.

Вот тебе и решение.
Аноним
Цитата:

On 2001-09-12 1740, Anonymous wrote
Помогите! Необходимо поставить защиту от юзера, что бы прога второй раз не запускалась.... Любыми средствами (Delphi или Win32)


program _1;

uses
Forms,
Windows,
Calculator in 'Calculator.pas' {Main},
UCPUSpd in 'UCPUSpd.pas' {UCPUSpd};

{$R *.res}

var
HM THandle;


function Check boolean;
begin
HM = OpenMutex(MUTEX_ALL_ACCESS, false, 'MyOwnMutex');
Result = (HM <> 0);
if HM = 0 then HM = CreateMutex(nil, false, 'MyOwnMutex');
end;

begin
if Check then Exit;
Application.Initialize;
Application.CreateForm(TMain, Main);
Application.CreateForm(TFormSpeed, FormSpeed);
Application.run;
end.

Вставь в проект и прога второй раз не запуститься. Если получится пиши на [EMAIL]rea28@comail.ru[/EMAIL]

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