Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
8-1135116718
Serg_SV
2005-12-21 01:11
2006.05.21
Альфа-смешение


4-1140673293
delphi-oracle
2006-02-23 08:41
2006.05.21
Как получить строку SendMessage


3-1143122033
anubis
2006-03-23 16:53
2006.05.21
SQL запрос


2-1146333722
Kano
2006-04-29 22:02
2006.05.21
Запросы в БД


2-1146174430
NightHunter
2006-04-28 01:47
2006.05.21
Как записать record в файл и потом ее считать?Плииз ОЧЕНЬ срочно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский