Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизОдноэкземплярное приложение Найти похожие ветки
← →
kEY// (2004-04-14 19:04) [0]Приветствую всех!
Подскажите, пожлста, как создать одноэкземплярное приложение? Ну чтоб если оно уже запущено, то еще раз не открывалось?
Спасибо
← →
metalfan © (2004-04-14 19:08) [1]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15
← →
TCrash © (2004-04-14 19:12) [2]program MyProgram;
uses
Windows,
Forms,
MyUnit in "MyUnit.pas" {Form1};
{$R *.RES}
var
Mutex : THandle;
begin
Mutex := CreateMutex(nil, False, "MyMutex");
if Mutex = 0 then
MessageBox(0,"Невозможно создать мьютекс", "Ошибка",
MB_OK or MBICONSTOP)
else if GetLastError = ERROR_ALREADY_EXISTS then
MessageBox(0,"Программа уже запущена", "Ошибка",
MB_OK or MBICONSTOP)
else
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
CloseHandle(Mutex);
end;
end.
← →
Тимохов © (2004-04-14 19:12) [3]можно создавать любой объект ядра в начале запуска. если уже создан с таким именем, то прекращать работу
т.е. в начале приложения
createmutex(nil, false, "некий GUID")
if getlasterror = ERROR_ALREADY_EXISTS then exit;
работать будет, проверял.
← →
Тимохов © (2004-04-14 19:13) [4]
> TCrash © (14.04.04 19:12) [2]
Тоже Рихтера читали? :)))))))))
← →
kEY// (2004-04-14 19:15) [5]А что такое мьютекс?
← →
TCrash © (2004-04-14 19:15) [6]Не, просто задал когда-то здесь этот вопрос и получил ответ, ну и кое-какие знания API
← →
kEY// (2004-04-14 19:16) [7]вернее MyMytex&
← →
Fay © (2004-04-14 19:18) [8]2Тимохов © (14.04.04 19:12) [3]
> можно создавать любой объект ядра в начале запуска. если
> уже создан с таким именем, то прекращать работу
Про любой - это Вы погорячились 8)
← →
Тимохов © (2004-04-14 19:19) [9]
> kEY// (14.04.04 19:16) [7]
Ответ вы уже получили.
Если интересно, наберите в редакторе дельфи createmutex нажмите ф1 и читайте.
mutex - это объект ядра. Объекты ядра обладают тем свойством, что могут быть доступны из любого процесса. Именованные (в данном случае имя MyMutex) могут быть созданы в одном экземпляре для каждого имени.
Читайте Рихтера.
← →
kEY// (2004-04-14 19:20) [10]А может еще кто знает, как с хоткейсами работать?))
Предположим, мы сделали менюшку и назначили ей хот-кей. Так вот если зажать этот хот-кей, то сначала операторы прописанные в событии менюхи OnClick выполнятся один раз, потом пройдет примерно 1 сек., а после они будут выполнятся оч быстро... пока не отпустишь.. Так вот вопрос в том, как сделать так, чтобы при зажатии горячей клавишы она выполняла действие один раз?..
← →
Тимохов © (2004-04-14 19:21) [11]
> Fay © (14.04.04 19:18) [8]
> Про любой - это Вы погорячились 8)
Да, наверное лучше сказать "Любой именованный ..."
На деле, конечно, делать так не надо. Mutex вполне подойдет.
← →
Тимохов © (2004-04-14 19:22) [12]
> kEY// (14.04.04 19:20) [10]
задайте вопрос отдельным топиком
← →
kEY// (2004-04-14 19:28) [13]ok" ща сделаем))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c