Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.03;
Скачать: CL | DM;

Вниз

Запуск программы(только 1 копия)   Найти похожие ветки 

 
Leonid Troyanovsky ©   (2009-11-11 21:58) [40]


> Игорь Шевченко ©   (11.11.09 21:47) [39]

> Что-то страсти какие-то рассказываются, про то, что файл
> проекта нельзя править :)

Начинающим - нельзя.
Запрещаю я :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2009-11-11 22:00) [41]


> Leonid Troyanovsky ©   (11.11.09 21:45) [38]

Да, часть иронии была припасена для топикастера,
но, потом, как-то оно рассосалось.

--
Regards, LVT.


 
Игорь Шевченко ©   (2009-11-11 22:00) [42]

Leonid Troyanovsky ©   (11.11.09 21:58) [40]

Начинающие вообще должны 7 лет отходы от набивки перфокарт за мастерами вытряхивать, прежде чем хоть что-то начать писать :)


 
Leonid Troyanovsky ©   (2009-11-11 22:03) [43]


> Игорь Шевченко ©   (11.11.09 22:00) [42]

> Начинающие вообще должны 7 лет отходы от набивки перфокарт
> за мастерами вытряхивать, прежде чем хоть что-то начать
> писать :)

Ну,  во-щем-то, да.
И не забывать про медитацию.

--
Regards, LVT.


 
Loginov Dmitry ©   (2009-11-11 22:06) [44]

> Но, при запуске программы под другим пользователем(например,
> если вошли через удаленный рабочий стол) она запустится.
> Кстати, кто-нибудь знает, как от этого избавиться?


http://delphimaster.net/view/1-1255714707/&toprint=1


 
antonn ©   (2009-11-11 22:14) [45]


> kyn66 ©   (11.11.09 20:22) [35]
>
>
> > читал не внимательно, читай еще.
>
>
> Что читать, за основу взят поиску по заглавию окна. А если
> в процессе работы заглавие меняется?

такой основы там нет.


 
Anatoly Podgoretsky ©   (2009-11-11 22:41) [46]

> Leonid Troyanovsky  (11.11.2009 21:45:38)  [38]

Ну это общая практика TLVTStopTwo


 
Anatoly Podgoretsky ©   (2009-11-11 22:43) [47]

> Игорь Шевченко  (11.11.2009 21:47:39)  [39]

Ну один догадался включить букву "я" в первые 256 байтов проекта.


 
Anatoly Podgoretsky ©   (2009-11-11 22:43) [48]

> Leonid Troyanovsky  (11.11.2009 22:03:43)  [43]

И ку


 
Leonid Troyanovsky ©   (2009-11-11 23:04) [49]


> Anatoly Podgoretsky ©   (11.11.09 22:41) [46]

> Ну это общая практика TLVTStopTwo

Я б звал вТуСтепь.

> И ку

А то :)

--
Regards, LVT.


 
kyn66 ©   (2009-11-12 01:09) [50]


> Игорь Шевченко ©   (11.11.09 22:00) [42]
> Leonid Troyanovsky ©   (11.11.09 21:58) [40] Начинающие
> вообще должны 7 лет отходы от набивки перфокарт за мастерами
> вытряхивать, прежде чем хоть что-то начать писать :)


Дедовщиной попахивает!


 
kyn66 ©   (2009-11-12 01:14) [51]


> antonn ©   (11.11.09 22:14) [45]
> > kyn66 ©   (11.11.09 20:22) [35]> > > > читал не внимательно,
>  читай еще.> > > Что читать, за основу взят поиску по заглавию
> окна. А если > в процессе работы заглавие меняется?такой
> основы там нет.


if GetLastError = ERROR_ALREADY_EXISTS then
   Begin
     Result := False;
     {$WARNINGS OFF}
     hWnd := FindWindow("TApplication", PAnsiChar(aWndName));
     {$WARNINGS ON}
     if aMessage then
       MessageBox(0, MSG_APP_ALREDY_EXIST, "Внимание!", MB_ICONWARNING or MB_OK or MB_TOPMOST or MB_APPLMODAL);
     If aFlash then
       FlashWindow(hWnd, True);
     If aRestore then
       Begin
         ShowWindow(hWnd, SW_RESTORE);
         SetForegroundWindow(hWnd);
       end;
   end
 Else
     Result := True;


 
antonn ©   (2009-11-12 01:55) [52]


> kyn66 ©   (12.11.09 01:14) [51]

{$WARNINGS OFF}
 hMutex := CreateMutex(Nil, true , PAnsiChar(aName));
 {$WARNINGS ON}
 if GetLastError = ERROR_ALREADY_EXISTS then
   Begin

вот это - основа. А то что внутри - механиз оповещения уже запущенной копии, передачи ей данных и прочего. О чем в [0] не сказано, можно поудалять.


 
Игорь Шевченко ©   (2009-11-12 02:55) [53]

antonn ©   (12.11.09 01:55) [52]

А зачем {$WARNINGS OFF} ?


 
Riply ©   (2009-11-12 03:11) [54]

> [53] Игорь Шевченко ©   (12.11.09 02:55)
> antonn ©   (12.11.09 01:55) [52]
> А зачем {$WARNINGS OFF} ?

Для соместимости с unicode-версиями среды, наверное :)


 
kyn66 ©   (2009-11-12 10:55) [55]


> вот это - основа. А то что внутри - механиз оповещения уже
> запущенной копии,


А поднимать из трэя как будет? По имени окна.... Хоть это и не основной момент, но без него никак не поднять в данном предложенном варианте.[35]


 
Leonid Troyanovsky ©   (2009-11-12 19:14) [56]


> kyn66 ©   (12.11.09 10:55) [55]

> и не основной момент, но без него никак не поднять в данном
> предложенном варианте.[35]

Хороший вопрос.

Если запихать хендлы искомых окон в mmf, то нет
никакой гарантии, что с момента их прочтения они не
поменяют свою принадлежность к изначальным окнам.

В случае с мьютексом можно найти способ известить
ищущего нужное окно, о том, что владевший окном
поток бросил мютекс (WAIT_ABANDONED),
и, сл-но, дальнейшие поиски излишни.

Т.е., еще есть над чем подумать.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2009-11-12 19:19) [57]


> Leonid Troyanovsky ©   (12.11.09 19:14) [56]

> и, сл-но, дальнейшие поиски излишни.

Ну, а захвативший мьютекс получает право создавать окна.

Хотя, во всей этой схеме родовой изъян - необходимость
именования объекта ядра.

--
Regards, LVT.



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

Текущий архив: 2010.01.03;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.02 c
15-1257111012
Юрий
2009-11-02 00:30
2010.01.03
С днем рождения ! 2 ноября 2009 понедельник


15-1256418198
XXL
2009-10-25 01:03
2010.01.03
Давно ли delphimaster рекламирует сомнительные сайты ?


15-1257173342
Иксик
2009-11-02 17:49
2010.01.03
Есть ли возможность вынести javascript события типа onclick


1-1231953992
Тыщ
2009-01-14 20:26
2010.01.03
Как использовать строковые константы в asm..end?


2-1258126599
ms
2009-11-13 18:36
2010.01.03
Помогите. Handle