Page 2 of 2

Re: почему perl-скрипты запускаются в новом окне?

Posted: Fri 08 Feb, 2013 10:31
by x-yuri

Latest post of the previous page:

Если запускать под ConEmu с открытой вкладкой Settings/Info/Debug и режимом Shell, получаем следующее при запуска с помощью Enter:

Code: Select all

10:55:33   Shell open   C:\Users\x-yuri\1.pl
10:55:33   Create       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
10:55:33   SrLoad
и следующее при запуске через командную строку far:

Code: Select all

10:55:37   Shell open   C:\Users\x-yuri\1.pl
10:55:37   Create       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
10:55:37   SrLoad
10:55:37   Inject       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
Похоже far по какой-то причине решает не делать inject.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 00:09
by Maximus5
Не мешайте мух с котлетами. Far - inject'ы вообще не делает.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 00:44
by Maximus5
В "Settings/Info/Debug/Shell" есть намного более интересная колонка - "Flags".
При запуске pl-файла Enter-ом - Far не взводит флажок SEE_MASK_NO_CONSOLE (ну и создается новая консоль для скрипта),
а вот если "Ctrl+Enter Enter" - флажок SEE_MASK_NO_CONSOLE взводится и скрипт выполняется в консоли фара.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 10:09
by x-yuri
Спасибо за пояснения. А чем он руководствуется при взводе SEE_MASK_NO_CONSOLE? При запуске perl-скриптов с помощью "Ctrl-Enter Enter" он взводится, а при запуске wordpad.exe тем же способом - не взводится. Наверное он как-то выясняет, консольное ли это приложение, но как?

При запуске файлов с помощью Enter он никогда не взводится?

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 12:44
by t-rex
Запишите на мантис это дело

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 13:14
by DrKnS
Перехватывать флаги - это, конечно, очень интересно, но код же доступен:
execute.cpp wrote:

Code: Select all

seInfo.fMask = SEE_MASK_FLAG_NO_UI|SEE_MASK_NOASYNC|SEE_MASK_NOCLOSEPROCESS|(SeparateWindow?0:SEE_MASK_NO_CONSOLE);
- т.е. копать надо не здесь.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 13:53
by DrKnS
far:config
System.Executor.BatchType

Добавьте .pl

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 22:37
by x-yuri
Да, так почти работает. Почти потому что есть еще одна проблема. Т.е. работает, но до перезапуска Far Manager.
Перехватывать флаги - это, конечно, очень интересно, но код же доступен:
А как вы докопались от seInfo.fMask до System.Executor.BatchType? Беглый поиск по коду этой связи не нашел.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sat 09 Feb, 2013 23:46
by DrKnS
x-yuri wrote:Да, так почти работает. Почти потому что есть еще одна проблема. Т.е. работает, но до перезапуска Far Manager
Похоже, что у всех, кроме вас, всё работает. Нажмите ShiftF9, проверьте, что папка с настройками доступна для записи и т. п.
А как вы докопались от seInfo.fMask до System.Executor.BatchType?
Знал, куда копать :)

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sun 10 Feb, 2013 00:26
by t-rex
А зачем у нас вообще эта настройка, почему не проверка в %pathext% (которая на скока помню тоже там где то есть)?

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sun 10 Feb, 2013 00:33
by DrKnS
Как тебе pathext поможет узнать, что это батник и его надо запускать в том же окне?

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sun 10 Feb, 2013 06:46
by x-yuri
DrKnS wrote:Похоже, что у всех, кроме вас, всё работает.
Не совсем так. Либо мне везет с обнаружением проблем, либо всем по^W все равно.
DrKnS wrote:Нажмите ShiftF9, проверьте, что папка с настройками доступна для записи и т. п.
Ситуация несколько прояснилась.

Re: почему perl-скрипты запускаются в новом окне?

Posted: Sun 10 Feb, 2013 09:26
by x-yuri
DrKnS wrote:Похоже, что у всех, кроме вас, всё работает.
Кстати, у меня вот что еще не работает. Так что все специалисты по запуску программ с помощью Enter и не только приглашаются в тему :) (Шучу, никого не хотел обидеть, если что)