|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Mike Blazer 2:5020/400 03 Aug 2000 03:57:46 To : All Subject : Re: win32 -------------------------------------------------------------------------------- > нужно вежливо попpосить пpоцес умеpет (WM_CLOSE), а если не закpоется -- > убить. пpосто с убиванием -- поpядок, но пеpвое так и не смог осуществить. > пpоцес создаётся via Win32::Process. помогите, плз. WM_CLOSE не убивает процесс, а только закрывает его консоль. Значит я так понимаю, твой child имеет собственную консоль? Если она имеет тот же заголовок "PERL", то ты никак не сможешь отличить её от парента и других чайлдов. А чтобы закрыть консоль, нужно сперва найти ее - это делает API call FindWindow и FindWindowEx. Они оба в качестве аргумента просят заголовок окна, если заголовки одинаковые отличить их нет возможности. Стандартный Win32::Process не дает возможности задать заголовок окна для child-процесса. Можно взять мою версию (линк внизу), которая позволяет задавать размер, заголовок и по-моему цвет консоли :) Hо, повторяю, WM_CLOSE не завершает процесс. $procObject->Kill() - это самый правильный способ завершить субпроцесс. Кроме того, можно при помощи Win32::Event или Win32::Semaphore или Win32::Mutex открыть некий флаг и в чайлде после каждой более или менее длительной операции проверять этот event или mutex, и если он установлен - снимать чайлда в нем самом, просто exit-ом. Вообще для передачи WM_* флагов окошкам можно использовать Win32::GUI или Win32::API (если нужно немного операций, как у тебя). Hо имена-то у консолей одинаковые - "PERL" - так что их не опознать. Логика такая: найти window's handle (целое число) и послать сообщение WM_CLOSE (0x10) этому хэндлу при помощи API-функции SendMessage или PostMessage. -- ================================== Mike Blazer blazer@mail.nevalink.ru http://base.dux.ru/guest/fno/perl/ ================================== --- ifmail v.2.15dev5 * Origin: ... (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1203812acdef7.html, оценка из 5, голосов 10
|