- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
procedure TForm1.FormCreate(Sender: TObject);
var formattedDateTime : string; S: TSearchRec; sf : Int64;
begin
Application.OnException := MyHandler;
if IsRunningEXEName(ExtractFileName(Application.ExeName)) = true then
begin
Application.Terminate;
Exit;
end;
bormand 09.03.2013 23:33 # +11
Steex 10.03.2013 02:54 # +4
Пойду тоже сеппуку сделаю. Или посплю. :)
Lure Of Chaos 10.03.2013 11:18 # +2
вариант: создавать лок-файл, или открывать сокет.
bormand 10.03.2013 11:28 # 0
Lure Of Chaos 10.03.2013 11:46 # 0
bormand 10.03.2013 11:53 # 0
Юзать JNA или JNI.
P.S. Тут же делфи, а для старых делфей (а я чуть менее чем уверен, что тут говнокодили на седьмой) что FindWindow что мутексы - винапишные костыли.
Lure Of Chaos 10.03.2013 12:00 # +1
vistefan 10.03.2013 23:19 # +1
increazon 10.03.2013 16:41 # 0
bormand 10.03.2013 11:58 # 0
Lure Of Chaos 10.03.2013 12:12 # +1
guest 14.09.2013 13:58 # 0
bormand 14.09.2013 14:41 # 0
increazon 10.03.2013 16:39 # 0
defecate-plusplus 10.03.2013 19:47 # +1
govnomonad 11.03.2013 07:32 # +5
eth0 10.03.2013 19:38 # +1
Я делал с виндовыми мьютексами, но в самом деле, никогда не проверял запуск от разных пользователей.
bormand 10.03.2013 19:48 # 0
In my app I use ConvertStringSecurityDescriptorToSecurityDescriptor and pass this string descriptor: D:(A;OICI;GRGW;;;AU). That grants read/write access for authenticated users.
WinAPI. Просто и наглядно.
govnomonad 11.03.2013 07:35 # +2
roman-kashitsyn 11.03.2013 12:50 # +5
nemyx 31.12.2018 10:12 # +1
http://govnokod.ru/23383#comment390615
increazon 10.03.2013 16:44 # +1
bormand 10.03.2013 18:37 # +2
Попробуйте просто открыть файл в эксклюзивном режиме. Второй процесс при этом обломается, и получит ошибку. И никакого таймера не нужно ;)
Vindicar 10.03.2013 17:16 # 0
UPD: второй параметр, передаваемый winmain(). не оно?
bormand 10.03.2013 18:35 # +1
6A9lHuCT 01.01.2019 00:59 # −102