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

Хотите говорить о Far и не знаете, куда обратиться?
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

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

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

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.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Sat 09 Feb, 2013 00:09

Не мешайте мух с котлетами. Far - inject'ы вообще не делает.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Sat 09 Feb, 2013 00:44

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

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

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

Post by x-yuri » Sat 09 Feb, 2013 10:09

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

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

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

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

Post by t-rex » Sat 09 Feb, 2013 12:44

Запишите на мантис это дело

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

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

Post by DrKnS » Sat 09 Feb, 2013 13:14

Перехватывать флаги - это, конечно, очень интересно, но код же доступен:
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);
- т.е. копать надо не здесь.

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

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

Post by DrKnS » Sat 09 Feb, 2013 13:53

far:config
System.Executor.BatchType

Добавьте .pl

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

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

Post by x-yuri » Sat 09 Feb, 2013 22:37

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

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

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

Post by DrKnS » Sat 09 Feb, 2013 23:46

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

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

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

Post by t-rex » Sun 10 Feb, 2013 00:26

А зачем у нас вообще эта настройка, почему не проверка в %pathext% (которая на скока помню тоже там где то есть)?

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

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

Post by DrKnS » Sun 10 Feb, 2013 00:33

Как тебе pathext поможет узнать, что это батник и его надо запускать в том же окне?

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

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

Post by x-yuri » Sun 10 Feb, 2013 06:46

DrKnS wrote:Похоже, что у всех, кроме вас, всё работает.
Не совсем так. Либо мне везет с обнаружением проблем, либо всем по^W все равно.
DrKnS wrote:Нажмите ShiftF9, проверьте, что папка с настройками доступна для записи и т. п.
Ситуация несколько прояснилась.

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

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

Post by x-yuri » Sun 10 Feb, 2013 09:26

DrKnS wrote:Похоже, что у всех, кроме вас, всё работает.
Кстати, у меня вот что еще не работает. Так что все специалисты по запуску программ с помощью Enter и не только приглашаются в тему :) (Шучу, никого не хотел обидеть, если что)

Post Reply

Return to “Обсуждение Far Manager”