Главная страница
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.047 c
15-1145959777
Yuri Btr
2006-04-25 14:09
2006.05.21
Прочитать RTF формат


6-1138136350
cerber
2006-01-24 23:59
2006.05.21
Скремблер Ethernet 100 ТХ


3-1143191600
kley
2006-03-24 12:13
2006.05.21
замена нулей


1-1144746277
DeadMoroz
2006-04-11 13:04
2006.05.21
Два и более обработчика события


15-1145774934
Mozart
2006-04-23 10:48
2006.05.21
CreateOleObject