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

Вниз

Подождать закрытия другой программы   Найти похожие ветки 

 
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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.114 c
3-1143202376
sanich
2006-03-24 15:12
2006.05.21
Ошибка: "Capability not supported"


2-1146553906
MST
2006-05-02 11:11
2006.05.21
Переменная сквозь модальные окна


9-1130332463
Кефир87
2005-10-26 17:14
2006.05.21
TDXSound без VCL


9-1129234201
$noopy.MC
2005-10-14 00:10
2006.05.21
Зацените игруху мою (openGL)


2-1146985807
vasilii
2006-05-07 11:10
2006.05.21
Опять про StringGrid