| View previous topic :: View next topic |
| Author |
Message |
Resarcher
Joined: 21 Jun 2009 Posts: 8
|
Posted: Fri Jun 26, 2009 8:02 pm Post subject: Переадресация кода. |
|
|
Вывел на панель кнопки, для выполнения написанного в редакторе AkelPad кода, да не все работают корректно (кроме кода написанного на чистом HTML). Например, HTML-документ, содержащий JavaScript не выполняется следующим кодом кнопки:
| Code: |
-"Выполнить HTML Code" Exec(`explorer.exe "%f"`) Icon(".....")
|
Да, и ещё вопросик. Установлен интепретатор ActivePerl, написал код кнопки выполнения Perl-кода, из AkelPad. Вот код:
| Code: |
-"Выполнить Perl Code" Exec(`cmd.exe "%f"`,"d%") Icon(".....")
|
При нажатии на кнопку "Выполнить Perl Code" программа запускается, но там, где предусмотрено выполнение других последующих операций, например, запроса о вводе значения или выполнения инкремента, окно интепретатора тут же закрывается. Программы мной проверены и при обычном вызове интерпретатора работают.
Посоветуйте, как устранить данные недочёты.
Заранее благодарен. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Sat Jun 27, 2009 1:25 pm Post subject: Re: Переадресация кода. |
|
|
| Resarcher wrote: | | Например, HTML-документ, содержащий JavaScript не выполняется следующим кодом кнопки:... | Возможно речь идет о Vista или Seven, если так, то вероятно блокирует система безопасности.
| Quote: | | Да, и ещё вопросик. | Может:
| Code: | | -"Выполнить Perl Code" Exec(`cmd.exe /k "%f"`,"d%") Icon(".....") | ? |
|
| Back to top |
|
 |
Resarcher
Joined: 21 Jun 2009 Posts: 8
|
Posted: Sat Jun 27, 2009 3:27 pm Post subject: |
|
|
Извиняюсь. HTML-код с JavaScript выполняется. По своей невнимательности не разблокировал в броузере запрет на выполнение сценариев.
Что касается команды "Выполнить Perl Code", то после применения к cmd.exe ключа /k код стал выполняться.
Огромное спасибо. |
|
| Back to top |
|
 |
MaximusMX
Joined: 11 Dec 2008 Posts: 28
|
Posted: Tue Jun 30, 2009 11:44 pm Post subject: |
|
|
Также интересует вопрос по работе с консолью. Аналогично пользуюсь вариантом:
| Quote: | | Exec('cmd.exe /k "%f"',"%d") |
однако есть 2 минуса:
1 - перед запуском каждый раз необходимо сохраняться
2 - сама консоль: неудобно работать + 2-е окно
Возможно ли реализовать перехват вывода результата роботы внешнего компилятора/консоли в отдельное окно (как у плагина HexSel) самого редактора ? Насколько я знаю такого плагина нет, потому буду крайне благодарен если найдется время на его написание или хотя бы вариант скрипта для плагина Scripts.
Заранее спасибо. |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Wed Jul 01, 2009 7:33 am Post subject: |
|
|
1) Это по любому, иначе как скормишь то, что сидит только в оперативке Акеля, другой программе?
2) А разница? Ну будет второе окно Акелевским... Что касается перехвата, то я как раз сделал класс для этих дел, правда, на Дельфях, но если кому-то понадобится — предоставлю. |
|
| Back to top |
|
 |
MaximusMX
Joined: 11 Dec 2008 Posts: 28
|
Posted: Wed Jul 01, 2009 8:17 am Post subject: |
|
|
1 - как вариант автоматическое сохранение файла перед запуском
2 - я некорректно выразился, у HexSel не самостоятельное окно, а панель.
в любом случае консоль это:
- нужно постоянно переключаться с консоли на редактор,
- при каждом запуске кол-во окон консоли растет,
- неудобная робота с текстом в консоли. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Jul 01, 2009 5:06 pm Post subject: |
|
|
| Fr0sT, а MSDN не пробовали почитать? Там есть полный пример как подменить stdin, stdout и stderr. [url=ms-help://MS.MSDNQTR.v90.en/dllproc/base/creating_a_child_process_with_redirected_input_and_output.htm]Вот[/url] |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Thu Jul 02, 2009 12:09 pm Post subject: |
|
|
FeyFre, э... не очень понял смысл данного сообщения. Я вообще-то сказал, что уже сделал этот класс.
MaximusMX, то есть ты хочешь dockable - панель, куда будет выводиться текст компилятора, типа вот этого? :
 |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Thu Jul 02, 2009 12:44 pm Post subject: |
|
|
Fr0sT | Quote: | | 1) Это по любому, иначе как скормишь то, что сидит только в оперативке Акеля, другой программе? | Судя по этой Вашей фразе я сделал вывод что Вы не знаете как скормить эту самую память дургому приложению через поток ввода, вот и привел ссылку на пример. |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Thu Jul 02, 2009 2:09 pm Post subject: |
|
|
| FeyFre, то есть ты предлагаешь вместо запуска программы с параметром командной строки перехватить пайп ввода и направить несохранённый файл через него? Хм. Идея, конечно, интересная, правда, не знаю, насколько реализуема. Ведь если прога не считывает предназначенный для компиляции файл через stdin, а открывает его сама (что разумно), то ничего и не выйдет... То есть это сам компилятор должен иметь возможность получать файл на вход из stdin. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Thu Jul 02, 2009 4:02 pm Post subject: |
|
|
Да, согласен, если запускаемый софт читает файлы непосредсвенно(компиляторы естественно так всегда делают) то подствить им вместо файла память очень проблематично(но возможно, в определенных условиях!). А вот если нужно комуто на стандартный ввод подать данные: есть трубопровод - проблем нету.
А было бы неплохо сделать такой плаг: переганял бы содержимое через другое приложение и возвращал обратно(например через тот же sort) Так сказать фильтр текстовый. Нужно будет подумать.... |
|
| Back to top |
|
 |
MaximusMX
Joined: 11 Dec 2008 Posts: 28
|
Posted: Thu Jul 02, 2009 6:30 pm Post subject: |
|
|
| Fr0sT wrote: | MaximusMX, то есть ты хочешь dockable - панель, куда будет выводиться текст компилятора, типа вот этого? :
 |
да. редактируемый файл (bat, cpp, pas, pl, pm, т.п.) запускается на выполнение и все что выводится в консоли должно выводится в dockable панели.
из аналогов навскидку только PSPad вспомнил. был там такой пункт "запустить внешний компилятор". после запуска появлялась панель в которой отображался рез-тат роботы скрипта или компилятора. перед запуском редактируемый файл сохранялся.
Last edited by MaximusMX on Thu Jul 02, 2009 8:24 pm; edited 1 time in total |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Thu Jul 02, 2009 7:17 pm Post subject: |
|
|
FeyFre
ага, а если еще и дать возможность выбора.запоминания запущенных программ.параметров, ммм... не знаю, правда, как это применить - сортировка-то у нас есть - но фича крутая .
MaximusMX
в принципе, думаю, фича будет достаточно востребованной. да и реализуется она не так уж сложно: док-панель уже есть в Clipboard. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Thu Jul 02, 2009 9:34 pm Post subject: |
|
|
Fr0sT, была бы фича, а приминение найдется
Так мы скоро договоримся, что AkelPad перерастет в IDE. А чего? Подсветка синтаксиса есть, автоподстановка есть, тулбары уже есть(можно и свои придумать), ещё пара плагов дописать(а лучше один комплесный), например для работы с популярными типами проектов для разных IDE, и для вызова соотв. компиляторов - и опа, IDE готово
(в голове куча идей, но руки не доходят ) |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Fri Jul 03, 2009 7:13 am Post subject: |
|
|
| FeyFre, осталось ещё решить проблему, что все плаги ваяет исключительно Инструктор, ну и парочку DV )) |
|
| Back to top |
|
 |
|