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

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

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

Post by x-yuri »

Latest post of the previous page:

win7 x64: попробовал разные комбинации perl x86/x64 + far x86/x64. Не работает. А кто-нибудь знает, откуда берутся новые окна? Far же не специально их создает? У кого-нибудь без PATHEXT не работает, а с PATHEXT работает?

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

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

Post by x-yuri »

Если запускать под 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 »

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

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

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

Post by Maximus5 »

В "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 »

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

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

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

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

Post by t-rex »

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

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

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

Post 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);
- т.е. копать надо не здесь.

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

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

Post by DrKnS »

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 »

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

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

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

Post by DrKnS »

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

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

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

Post by t-rex »

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

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

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

Post by DrKnS »

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

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

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

Post by x-yuri »

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 »

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

Post Reply

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