![]() |
Как отследить закрытие запущенной из под Zinc приложения программы?
Доброго вечера уважаемым гуру.
Подскажите пожалуйста такую вещь: Запускаю из под Zinc приложения стороннюю программу. Она делает некие действия, потом закрывается. После её закрытия, моё Zinc приложение, тоже должно что то сделать. Как отследить её закрытие? Есть mdm.Process.isOpen(id:Number):Void но не понимаю, где можно получить ID процесса нужной мнепрограммы? Он ведь при каждом запуске разный... Есть Код:
var windowList:Array = mdm.System.getWindowList();Самое интересное, что ведь организовав циклическую проверку windowList, легко видеть что он в массиве есть, или что его нет, но как использовать это, никак не могу сообразить... А может я туплю? Или может есть какой то очень красивый способ отслеживания закрытия программы, но я не нашел его ни здесь на форуме, ни в хелпе? PS Zinc 2.5 ActionScript 2 |
Цитата:
В хэлпе есть вот что: Цитата:
Код:
mdm.Process.create("", 0, 0, 0, 0, "", "calc", "", 2, 4);Обратите внимание, что для запуска проги нужно в этом случае юзать mdm.process.create(). А не mdm.System.exec(). Насколько я знаю, никаких других встроенных методов для работы с "чужими" окнами и процессами цинк не предоставляет. Если нужно что-то очень уж навороченное, пишите длл с требуемым функционалом. |
Вложений: 2
alexcon314
ОК! Спасибо! Что то я просмотрел это дело в хелпе, попробую. А я как раз и использую mdm.process.create(). Я надеялся что если написать что то типа var myProcessID:Number = mdm.Process.create("", 0, 0, 0, 0, "", applicationPath, appFolder, 2, 4); то myProcessID вернет таки ID процесса. Но он как и написано в хелпе, возвращает лишь true при успешном запуске, иначе false. НО! Вот эта конструкция почему то получает ID! Код AS3:
Прикладываю fla. Это пример с ZINC-овского сайта. Возможно ли такое на AS2? PS Посмотрел сейчас хелп по 2.5 и по 3 но так и не увидел в разделе mdm.Process такой вещи как mdm.Process.lastId:Number :( |
Мда..
За пример сказать ничего не могу, не охота ковыряться, да и вторая часть битая, не открывается. Первую посмотрел, да, но компилить не стал. То, что работает "var myProcessID:Number = mdm.Process.create(....", ну так может в третьей версии цинка так оно и есть, чем черт не шутит. Хотя, в хэлпе тройки про mdm.Process.create() написано все так же, как и в хэлпе 2.5. Возможно, просто троечный хэлп неправильный, вполне допускаю. Собственно, можете попробовать скомпилить пример АС2, но в третьем цинке и посмотреть, что возвращает mdm.Process.create(). Только какое это имеет для вас значение, если вы работаете на версии Zinc 2.5? Что до mdm.Process.lastId в хэлпе оно есть, и в 2.5, и в 3.0. Почему вы его не смогли найти, я не знаю, ищите лучше. |
Перезалил файлы, может кому сгодятся.
Но думаю всё нормально было. Это ж многотомный архив, и при распаковке хвостик fla из второго файла подхватывается автоматом. Там в примере был скомпиленный файл, но я его выкинул из за ограничений форума по месту. Поковыряюсь ещё, попробую всёж добится такого... |
Цитата:
И главное, это никак не влияет на решение поставленной задачи. Какая разница, как вы получите пид, в конце-концов? Пид есть по-любому, что еще нужно? |
| Часовой пояс GMT +4, время: 01:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.