Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Плагин для захвата и перенаправления в проект вывода консольных приложений. По смыслу аналог имеющегося AlConsole. Не пытайтесь запускать приложения не имеющие консоли.
Путь к приложению - указываем без кавычек, просто путь к ехе-файлу и все. Параметры запуска - указываем параметры ком. строки приложения. Если нужно указать файлы, то пишем их в кавычках если путь содержит пробелы. В работе учитывается переменная [CurrentDir], по умолчанию это вроде как [PubDir], и приложения которые здесь лежат можно запускать без полного пути. Но [CurrentDir] можно и переназначить, приложение будет думать что находится в другом месте (обычно если там нужны какие-то сторонние файлы).
Синтаксис показан на скриншотах, должно быть все понятно.
Системные приложения (путь в [SystemDir]):
На примере FreeArc:
Если нужно конвертировать вывод CP866 (DOS/OEM) -> Windows-1251 (ANSI) Обратите внимание, не стоит делать заключения и полагаться на текст консоли, при выполнении системных команд на ОС другой локализации вывод текста будет на другом языке соответственно.
Поддерживает обработку событий в следующих подпрограммах: :OnConsoleBuffer Выполняется всякий раз при появлении в буфере вывода консоли новой порции данных. Макс. размер буфера 4Кб. Содержимое буфера складывается в переменную для результата [Result]. Если подпрограмма не существует, то все содержимое консоли целиком будет записано в [Result] по окончании работы. :OnConsoleClose Выполняется сразу после завершения работы приложения. Если не задана, то и не выполнится.
Поддерживает асинхронный режим работы, в параллельном потоке. В этом случае ход сценария не блокируется плагином. При возникновении ошибок в [dmCMDRun] будет возвращен код ошибки.
Версия 1.4 - Добавлена возможность записи в консоль родительского процесса. Ваша программа должна быть запущена другой (родительской) программой, которая имеет окно консоли, либо из комстроки Windows (cmd.exe).
- Now plugin can also write data into console window of the parent process of your application. Neobook application must be started by a process that has a console window or Windows console host (cmd.exe).
Версия 1.3 - Исправлен баг при котором в проект не передавались данные с консоли целиком - Исправлен баг при котором пути с пробелами вызывали ошибку в некотором условии
- Fixed a small bug with large data packets, they could not be passed to neobook - Fixed rare bug when quoted paths with spaces produced error
Версия 1.2 - Улучшена стабильность работы, в т.ч. в режиме параллельного потока (все еще возможны краши при многочисленных повторных вызовах закликиванием кнопки старт, это в процессе исправления). - Клевая резиновая... растягиваемая демка
- Improved workflow and stability in threading mode (still can crash on multiple repetitive calls by over-clicking start button, will be fixed) - Improved demo pub, window is sizeable now
Версия 1.1 - Исправлена несовместимость с некоторыми консольными программами / командами (net.exe, netstat.exe, dir ...) - Добавлена локализация EN и выбор языка EN/RU (в диалоге About / О плагине) - Подпрограммы событий теперь нельзя переназначить, их имена фиксированные (см. выше) - В переменную [dmCmdRun] возвращается код ошибки (см. пояснения в демке) - Мелкие исправления и улучшения
- Fixed incompatibility with certain console apps and system commands (net.exe, netstat.exe, dir ...) - Added English localization and language selector EN/RU (see About plugin window and pub hints and notes) - Subroutines for events now have fixed names (see above) - Variable [dmCmdRun] now contains error code (see notes in pub) - Small fixes and improvements
* Консольные приложения бывают разные, могут иметь проблемы или несоответствия с кодировками ОС и вывод будет кракозябрами. Для таких программ всегда тестируйте вывод на разных ОС. При устранении проблем кодировки используйте опцию "Конвертировать вывод консоли". Например, прога ipconfig в xp требует включения галочки, а в 7 наоборот не требует.
DEMBEL, пробовал открывать текстовые файлы, окно демо-проекта иногда виснет почему-то. Использовал путь к приложению: C:\Program Files (x86)\Notepad++\notepad++.exe Путь к файлу пробовал и с кавычками и без. Файл открывается в обоих случаях, но окно проекта виснет (проверял на семерке).
Внутреннее устройство плагина подразумевает наличие консольного вывода и ожидания завершения его чтения. Так что не надо пытаться запускать GUI-программы, только консольные. Для которых, собственно, и предназначен плагин.
Добавлено (03 Апреля 2012, 08:36) --------------------------------------------- Почему виснет? Потому что плагин дожидается окончания работы программы. Когда закроешь нотепад, он отвиснет, и скажет что работа закончена. Как задавать вопросы
DEMBEL, Я так и не могу врубиться: а на каком же конкретно языке ты творишь плагин?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
с++ (Microsoft Visual C++ 2010 Express) + кое-что для конвертирования кода в с++ с другого языка. Исходник из ...\C++ Examples\Template\ прототипы всех нб-шных функций указаны там, правильные они или нет я не знаю, может типы переменных неверные. может компилятор другой попробовать. не знаю что там зависает. если будет повторяться, буду ковыряться.
+ кое-что для конвертирования кода в с++ с другого языка
Зачем? Ведь, в SDK есть примеры для С++. Алиен-то сумел разобраться.
Добавлено (03 Апреля 2012, 18:18) --------------------------------------------- Кстати, я заметил такую вещь: действительно, после открытия списка переменных, при закрытии окна "помощника" на долю секунды мелькает какое-то окно раза в три больше размером, чем окно окошка плагина, но NB не подвисала покуда.
Добавлено (03 Апреля 2012, 18:21) --------------------------------------------- Да, и ещё: один раз плагин (на дэмке) выдал Access Violation + предложение отправить отчет + Runtime Error. Но при каких обстоятельствах сказать не могу, вроде все было как обычно. Последующие запуски дэмки ошибок не выдавали... Не знаю, может случайность какая...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
после открытия списка переменных, при закрытии окна "помощника" на долю секунды мелькает какое-то окно раза в три больше размером, чем окно окошка плагина,
Есть такое дело, тоже обратил вниманее. Access Violation ни разу не вылазил.
Знакомство с командной строкой К сожалению, утилиты командной строки в Windows редко используются пользователями (в основном ими пользуются системные администраторы). А ведь с их помощью можно сделать очень много и быстрее.
Как работать в командной строке Чтобы использовать командную строку, нужно запустить программу cmd.exe удобным вам способом. Например, ее можно запустить через Пуск | Все программы | Стандартные | Командная строка. На самом деле это командный интерпретатор, который пришел на смену command.com из мира DOS и Windows 9x.
В результате запуска у вас появится консольное окна черного цвета (цвет можно настроить), в котором нужно вручную вводить команды.
Есть несколько простых приемов, которые нужно запомнить. Например, если не хочешь ждать завершения первой команды, можно ввести сразу несколько команд, разделив их амперсандом:
команда1 & команда2 & ... & командаN Если эту последовательность команд приходится выполнять постоянно, то удобнее создать специальный командный файл - обычный текстовый файл с расширением cmd. Каждая команда записывается в отдельной строке, но можно и использовать амперсанды. Многие по-привычке создают файлы с расширением BAT (любовно называя их батниками). Особой разницы нет, в целях совместимости старое расширение работает также с командной строке.
Иногда требуется выполнять программы в определенной последовательности, дождавшись определенного результата от предыдущей команды. И если результат успешен, выполнить следующую команду. Это можно реализовать с помощью двойного амперсанда:
команда1 && команда2 Вторая команда будет выполнена, если код завершения первой команды равен нулю (успешное завершение).
Иногда программа выдает результат в таком большом количестве, что не успеваешь прочитать весь текст. В этом случае нужно добавить параметр more для постраничного просмотра. Тогда текст будет выводиться кусками и можно листать текст при помощи клавиши пробела.
команда | more Символ «|» используется для перенаправления стандартного вывода одной команды на стандартный ввод другой. Что будет делать с этим выводом другая программа, зависит только от нее.
Для перенаправления вывода команды в файл используются символы «>» и «>>»:
команда > файл
команда >> файл В первом примере, если файл существует, то будет перезаписан, а во втором примере информация добавляется в конец файла. Для подавления вывода команды можно перенаправить вывод в пустое устройство:
команда > NUL Если окно командной строки забито текстом, который вам мешает, то можете просто очистить экран через команду:
cls Команды Команды бывают внутренними и внешними. Внутренние команды выполняет сам cmd.exe. Внешние команды - обычные исполняемые exe-файлы, которые иногда еще называют утилитами командной строки. Когда мы вводим команду, cmd определяет, что это за команда. Если внутренняя, то он выполняет ее сам, если внешняя, тогда cmd производит поиск исполняемого файла в текущем каталоге и по пути поиска программ (переменная окружения PATH). Просмотреть содержимое переменной PATH можно так:
echo %PATH% Описания внутренних и внешних команд представлены в данном справочнике.
Примеры shutdown.exe - В Unix есть очень программа shutdown. С ее помощью можно не только завершить работу системы (или перезагрузить ее), но и указать время завершения. Аналог этой команды есть и в Windows. С ее помощью можно просто выключить систему, выполнить перезагрузку, убить активных пользователей, перейти в режим пониженного энергопотребления и закончить сеанс без отключения компьютера. Очень полезен параметр '-t', позволяющий задать в секундах тайм-аут операции.
systeminfo.exe - полная информация о системе
ping.exe - отправка ICMP-пакетов на указанный узел для проверки его доступности
net.exe - управение сетью из командной строки
nslookup.exe - просмотр записей DNS-сервера
netstat.exe - вывод информации о сети
chkdsk.exe - проверка дисков
diskpart.exe - позволяет разбить диск на разделы, создать/удалить логические диски, выбрать активный раздел и т.д.
Сценарии Сценарии - это текстовые файлы с инструкциями, которые должна выполнить diskpart. Вызвать diskpart можно так:
diskpart /s <имя_сценария> Пример сценария diskpart select disk 0
clean
create partition primary
select partition 1
assign letter=c:
active
format
exit Обратите внимание, как осуществляется работа с объектами. Сначала с помощью команды select мы выбираем диск (select disk). Затем мы производим две операции (clean и create partition). Далее выбираем другой объект - раздел (select partition) и производим операции с ним (делаем раздел активным и форматируем его).
Можно указать размер создаваемого раздела (в данном случае 5 Гб), например:
Добавлено (13 Апреля 2012, 04:46) --------------------------------------------- DEMBEL, у меня вопрос, мож глупый, если мне надо с cmd.exe команду запустит типа help, как это должно в плагине выглядеть? Что то я с наскоку не пойму.
Хотя мне так и не понятно в каких случаях надо ставить /c, /k
Да, тут все просто /с ставится, когда надо завершить работу смд, а /к, будет ждать есчо команд, то бишь не закроется, что мешает проверить , главное "формат С" не запускай . Ключ /s изменяет команду после /c или /k, но как это работает хз... Никогда не использовал ключи /k и /s, не было необходимости.
Quote (mishem)
А зря.
это ж почему, пока нет необходимости в ней. Вернее была, но плагин не работает с *.com, когда понадобится установлю.
DEMBEL, надо сделать что бы два окна помошника не могли одновременно открываться. Открыл окно, переместился на другое приложение, назад возвращаюсь в НБ, окошка нет. Автоматом опять лезу в команды, щелкаю, есть окно. Ввел что надо, ок. Окно не закрывается... Смотрю, еще одно окошко. ...
Так у меня плагин и вылетает при длительном получении пакетов. Получаемую инфу сделал так что бы не накапливалась, а заменялась. Все равно через некоторое время вылетает.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
родительское окно для диалога - рабочий стол, поэтому и можно. когда был родитель редактор сценариев, как полагается, что-то там моргало... ну или как выключить повторное создание окон в данном случае? Как задавать вопросы
Скачал, установил и опробовал сейчас последнюю версию, ничего не изменилось...
Добавлено (22 Апреля 2012, 08:12) ---------------------------------------------
Quote (DEMBEL)
родительское окно для диалога - рабочий стол
Родительским окном (точнее - модальным) для диалога должен быть не рабочий стол, а окошко редактора NB, т.е.
Quote (DEMBEL)
когда был родитель редактор сценариев, как полагается, что-то там моргало...
А вот что там моргало вопрос другой. Но у меня на панели задач все-равно ничего не отображается. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
у меня на панели задач все-равно ничего не отображается.
А-а-а! Я понял, блин! Ведь у меня "убогая" ATI, а на "супер" nVidia все должно быть видно!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться