Форум: "WinAPI";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизПодождать закрытия другой программы Найти похожие ветки
← →
sco © (2006-02-25 17:08) [0]..., запущенной не из данной программы, и не имеющей своего окна. А теперь по подробнее:
У меня 2 программы, которые переоткрывают друг друга при закрытии, одна имеет форму, другая только для переоткрытия и предназначена, и естест. формы не имеет. Так вот прога где нет формы без проблем запускает прогу которая имеет форму:
const
fileName = "bcr522c.exe";
procedure ShellExecute_AndWait;
var
exInfo: TShellExecuteInfo;
Ph: DWORD;
begin
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := "open";
lpFile := PChar(FileName);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@exInfo) then
begin
Ph := exInfo.HProcess;
end
else
begin
ShowMessage("Error");
Exit;
end;
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;
procedure Find_AndShell;
var
exInfo: TShellExecuteInfo;
Ph: Cardinal;
dir: string;
a: PChar;
ExitCode: Cardinal;
begin
GetDir(0,dir);
while FindWindow(PChar("TTbrcForm"),PChar("Вставка диска"))<>0
do Sleep(50);
ShellExecute_AndWait;
end;
А что делать в проге которая имеет форму, и которой надо переоткрывать при закрытии ту форму у которой нет формы? FindWinow там не пройдёт! А FindExecuteA по моему не от сюда, в общем я её пробовал у меня не получилось. Подскажите люди что делать?
← →
GanibalLector © (2006-02-25 17:41) [1]Как вариант работать с сообщениями(
PostMessage(HWND_BROADCAST...
). Естественно, предварительно написав обработчик.
← →
Sco © (2006-02-25 18:19) [2]PostMessage - функция помещает указанное в ней сообщение окну или множеству окон в очередь сообщений потока, создавшего эти окна, и возвращается, не дожидаясь окончания обработки этого сообщения.
to GanibalLector - ты имеешь ввиду проге, которая без окна, при выключении, отправить месагу проге которая с окном, чтобы она его приняла и перезапустила первую?
Тут одна неувязочка - проги закрываются не добровольно а через Alt-Ctrl-Del и поэтому первая прога не сможет при закрытии отправить сообщение.
← →
Сергей М. © (2006-02-26 11:34) [3]
> Sco © (25.02.06 18:19) [2]
> не добровольно а через Alt-Ctrl-Del
Тогда твоя логика трещит по швам
← →
Sco © (2006-02-27 19:45) [4]"Тогда твоя логика трещит по швам"
Почему?
Ну шуточная прога для друга, пишет что "нужен дисковод, и ничего не знаю", ну приколов там много, в общем смешная прога, но я хочу чтобы её очень сложно было закрыть -> мне надо чтобы 2 проги друг друга переоткрывали, так как обычную кнопку "закрыть" я переоборудовал не на закрытие а на открытие копии, то юзер может вырубить прогу либо из командной строки, либо из TaskManager. Ну а в чём проблема я вроде понятно обьяснил, у одной из форм нет окна, и как обнаружить "откинула ли она коньки" или нет я не знаю. Мож кто-нидь знает?
← →
Игорь Шевченко © (2006-02-28 00:16) [5]
> ну приколов там много
ввв.хакеп.ру - тебе туда.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c