Форум: "Начинающим";
Текущий архив: 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