Главная страница
    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.47 MB
Время: 0.037 c
1-1081838119
Term
2004-04-13 10:35
2004.05.02
Есть ли такой компонент..................?


1-1081485773
EvgeniyR
2004-04-09 08:42
2004.05.02
ToolBar в MDI


1-1081755051
fatal
2004-04-12 11:30
2004.05.02
Scroll мыши над компонентом.


6-1078345016
NightBlaze
2004-03-03 23:16
2004.05.02
net send


1-1081940676
clover
2004-04-14 15:04
2004.05.02
CheckBox в ListView и ReadOnly





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский