Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.059 c
11-1061807748
electric
2003-08-25 14:35
2004.05.02
Как в KOL отправить письмо?


14-1081392375
Думкин
2004-04-08 06:46
2004.05.02
С днем рождения! 8 апреля.


14-1081491476
Igorek
2004-04-09 10:17
2004.05.02
Наша ОС с нуля


14-1081487155
Dmitriy O.
2004-04-09 09:05
2004.05.02
Люди кто нить делал в Дельфях расчет корреляции ?


3-1080896476
kat
2004-04-02 13:01
2004.05.02
создание TADOConnection





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский