Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Вниз

Запуск приложения, только один раз за сеанс Windows!   Найти похожие ветки 

 
mctarik ©   (2006-01-15 22:48) [0]

Собственно Сабж!


 
Vlad ©   (2006-01-15 23:26) [1]

и что я должен сделать?


 
Кефир87 ©   (2006-01-16 02:29) [2]

С сабжем согласен


 
gdaujk ©   (2006-01-16 08:49) [3]

Смотреть в сторону мьютексов, семафоров, файлмеппингов...

PS: всё-таки краткость не сестра таланту...


 
mctarik ©   (2006-01-16 10:42) [4]


> gdaujk ©   (16.01.06 08:49) [3]


Но и не брат...

мне нужно чтоб программу можно было запустить только один раз за сеанс
Windows!


 
КиТаЯц ©   (2006-01-16 10:47) [5]

Теоретически должно работать (не проверял):

var MemHnd:HWND;

begin
MemHnd:=CreateFileMapping(HWND($FFFFFFFF), nil, PAGE_READWRITE, 0, 4, PAnsiChar(Application.EXEname));
if (GetLastError <> ERROR_ALREADY_EXISTS)
 then begin
 Application.Initialize;
 Application.CreateForm(TMainForm, MainForm);
 Application.Run;
 end else begin
   Application.MessageBox("Повторный запуск невозможен (перезагрузите Виндуса)", PAnsiChar("НЕЛЬЗЯ!!!"), MB_OK+MB_ICONINFORMATION);
 end;
end.


зы. Это все в DPR-ке


 
mctarik ©   (2006-01-17 12:53) [6]


> КиТаЯц ©   (16.01.06 10:47) [5]


Нифига не работает! даже теоретически!


 
Digitman ©   (2006-01-17 13:04) [7]


> mctarik ©   (17.01.06 12:53) [6]
> Нифига не работает!


а проанализировать код ?
прогнать под отладчиком ?
понять что в нем, почему и для чего ?

не царское это дело, так что ли ?


 
Evgeny V ©   (2006-01-17 14:12) [8]

Может порыться в сторону RegCreateKeyEx,, dwOptions ,REG_OPTION_VOLATILE. Проверять соответствующий ключ в рееестре. Или проверыять наличие файла, если есть то делать MoveFileEx, с dwFlags MOVEFILE_DELAY_UNTIL_REBOOT. Конечно имеет смысл защититься от и повторного запуска программы в течении одной сессии cм мьютексы, эвенты и маппед файлы


 
ss2   (2006-01-17 14:18) [9]

program V;
uses
 Forms,
 Windows,
 Main in "Main.pas" {Form1},
 Unit2 in "Unit2.pas" {Form2};

{$R *.RES}

const
MUTEX_NAME ="{66E4DAD1-1D11-486C-AAD0-100A5F9271DC}";// ctrl+shift+G

var
HM:THandle;
function Cl :boolean;
begin
 HM:= OpenMutex(MUTEX_ALL_ACCESS, false, MUTEX_NAME);
 Result:= HM<>0;
 if HM=0 then HM:= CreateMutex(nil, false, MUTEX_NAME)
         else ReleaseMutex(HM);
end;

begin
if Cl then begin
 Application.MessageBox("&#207;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#224; "V" &#211;&#198;&#197; &#231;&#224;&#239;&#243;&#249;&#229;&#237;&#224; !!!  ","  "V"", MB_ICONEXCLAMATION);
 Exit;
end;
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


 
VirEx ©   (2006-01-17 18:25) [10]


>  [9] ss2   (17.01.06 14:18)

мьютекс убивается сразу же как только приложение создавшее его умирает, надо делать атом:

atom := GlobalAddAtom(atomtext);//устанавливаем атом

GlobalDeleteAtom(atom);    //убиваем атом

//если атом не установлен то запуск программы
if GlobalFindAtom(atomtext) = 0 then



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
9-1124534029
FUNKy
2005-08-20 14:33
2006.02.05
GLScene для .NET


2-1137421238
sanich
2006-01-16 17:20
2006.02.05
Какой генератор отчетов выбрать?


3-1134038479
Helen
2005-12-08 13:41
2006.02.05
Не могу установить драйвер MSSQL в BDE


2-1137488065
rerbi
2006-01-17 11:54
2006.02.05
как добавить символ в строку


2-1137675869
Змей
2006-01-19 16:04
2006.02.05
borderstyle ->bsnone (нельзя изменить размеры формы)





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