Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПроблема с FundWindow Найти похожие ветки
← →
BUKA (2003-09-06 15:56) [0]Вот в одной из хороших книжек даны рекомендации по защите от повторного запуска программы (код вносится в файл проекта), привожу дословно:
program Sprav;
uses
Forms,
Windows,//не забудьте подключить этот модуль
S_Unit1 in "S_Unit1.pas" {Probe};
{$R *.res}
begin
Application.Initialize;
//Если окно существует, то завершить приложение
if Windows.FindWindow ("TProbe","Probe")<>0 then Application.Terminate;
Application.CreateForm(TProbe, Probe);
Application.Run;
end.
И ... не работает, т.е. программа запускается и 2-1 и 3-й раз!
Нельзя сказать, что команда "пропускает" или не видит код. Если меняешь "<>" на "=", то - "выплевывает" мгновенно. У кого будет мнение на сей счет?
← →
NikB (2003-09-06 17:29) [1]A nelzia li stavit "else begin ... end":
if Windows.FindWindow ("TProbe","Probe")<>0 then Application.Terminate else begin
...
end;
?
← →
BUKA (2003-09-06 18:36) [2]Не знаю попробую, но книжка А.Хомоненко "Delphi 7" на 1200 стр. рекомендует как один из 2-х способов именно такой.Меня что "засмущало": ведь программа "видит" код (я привел пример реакции при замене "<>" на "="), но значит даже при включенном приложении (открытой форме Probe) выдает 0!т.е., прошу прощения за тавтологию - не "видит"? И вот такие "мелочи" практически везде, в том числе и с отображением текста в DBD, книжка ничего нового, что не посоветовали Мастера не предлагает.
← →
Song (2003-09-06 21:59) [3]http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1037272197
← →
panov (2003-09-06 23:41) [4]
function isRunning(aUniqueString:String): Boolean;
var
hMutex: THandle;
begin
Result := False;
hMutex := CreateMutex(nil,False,PChar(aUniqueString));
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Result := True;
CloseHandle(hMutex);
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c