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

Вниз

Запуск программы(только 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.005 c
15-1256743947
Игорь
2009-10-28 18:32
2010.01.03
Бросить курить


15-1256888189
Сергей М.
2009-10-30 10:36
2010.01.03
О птице в облаках


15-1257313780
Kolan
2009-11-04 08:49
2010.01.03
Делать DMClient опенсорсным?


1-1231767209
TStas
2009-01-12 16:33
2010.01.03
Как сделать из gif ов bmp?


2-1258016441
Иван
2009-11-12 12:00
2010.01.03
Как экспортировать ListView в Excel?





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