CaptainFlint

|
Posted: Wed Sep 05, 2007 18:35 Post subject: |
|
|
D1P wrote: | Пожалуйста, чтобы не было очередного потока недоразумений, напиши, какими ты видишь эти фичи, и каким образом они должны будут использоваться. Боюсь, перечитывая все темы, посвящённые вопросу, я много чего упустил из виду. |
Фича нумер один: подробнейшим образом расписана в документе в скачиваемом архиве. В качестве готовой иллюстрации приложена прожка, показывающая общие принципы (конкретно - как выглядит запуск программ в управляемой консоли и в обычной консоли). Единственное, чего в ней не хватает - это кнопки принудительного запуска приложения в новой консоли (обычной), если управляемая консоль свободна. Сделать это несложно, пара строчек кода, просто возиться сейчас лень.
Иллюстрируемая функция реализуется совершенно самостоятельно, в коде самого Тотала, никаких API, никаких плагинов.
Фича нумер два: Новый WIX-интерфейс для реализации нового типа плагинов - интерфейсных, имеющих свою панель (а-ля TotalConsole), умеющих получать ввод из командной строки Тотала (а-ля WFX-плагины) и так далее - приблизительно так, как ты это описал в своём сообщении. Детали реализации для меня в этом случае становятся абсолютно некритичными, поскольку сохранение вывода консольных прожек (чему, изначально и посвящена была тема-то!) будет реализовано в полном объёме фичей нумер один.
VadiMGP wrote: | Я же говорю - я это не для спора, меня просто сомнения грызут - можно ли это реализовать на уровне коммерческого продукта. |
Согласись, это куда лучше того безобразия, что сейчас творится. Достаточно вспомнить хотя бы noclose.pif, реализованный через этот убогий command.com. И ничего, тоже на уровне коммерческого продукта вроде как...
VadiMGP wrote: | А возможно ли, например, определить занятость консоли учитывая и то, что юзер запустит batch, в котором находится команда start? Не знаю. Если возможно - хорошо, а если нет, то в такой ситуации "ничего не делать" чревато боком. |
Для того период бета-тестирования и существует. Конкретно твой пример (разумеется, с параметром /B) в моей программе не обнаружился, и консоль пометилась как свободная, хотя в ней продолжала работать программа.
VadiMGP wrote: | Если возможно - хорошо, а если нет, то в такой ситуации "ничего не делать" чревато боком. |
Обычный юзер подобные батчи писать не станет, а продвинутый сможет явным образом запустить этот батч в отдельной консоли, не занимая основную (управляемую). Это, разумеется, как крайний случай, если абсолютно ничего невозможно в такой ситутации сделать (в чём я сильно сомневаюсь).
Митяй wrote: | Разрешите Вас перебить |
Разрешаю.
Митяй wrote: | Перенаправление всех запускаемых приложений можно считать частным случаем перенаправления всех внутренних команд. Если интерфейс позволит передавать в плагин информацию о всех выполняемых командах |
(теперь перебью я) ... то задача превращается в нереальную. Такие плагины должны будут иметь возможность перебросить команду обратно Тоталу, а таких callback-ов пока не предусмотрено. Реализовывать подобный механизм очень муторно - потому что у каждой команды свой набор параметров, более того, во внутреннем представлении все эти форматы могут отличаться, как небо и земля, и Тоталу придётся постоянно конвертить данные туда-сюда между своим внутренним форматом и форматом, придуманным для работы с плагином (который должен быть хоть сколь-нибудь унифицированным, ведь не будут же плагинописатели перебирать структуры данных для всех - сколько там сейчас сотен команд уже набралось?), и такая конвертация существенно замедлит работу Тотала.
В целом идея неплохая, согласен, но дождаться её реализации (и не какой-нибудь, а удобной и быстро работающей), скажу честно, у меня надежды нет ни малейшей. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|