Запускатель и PATHEXT

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Запускатель и PATHEXT

Post by DrKnS »

Latest post of the previous page:

KcinKh wrote: Sun 22 Nov, 2020 22:15 параметры не отображаются
5709.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Запускатель и PATHEXT

Post by Wave »

ShiftEnter на папке, рядом с которой лежит одноимённый экзешник, запускает этот экзешник. Раньше открывало эту папку в виндовс эксплорере. Папку прям аж через EMenu в таком случае приходится открывать.
5710
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Запускатель и PATHEXT

Post by DrKnS »

Wave, 5717
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Запускатель и PATHEXT

Post by Wave »

DrKnS, в 5717 если папка имеет пробелы в имени, то про ShiftEnter мелькает и тут же закрывается чёрная консолька, но не открывается папка.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Запускатель и PATHEXT

Post by DrKnS »

Wave, 5718
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Запускатель и PATHEXT

Post by Wave »

Ещё такая фигня обнаружилась. В качестве внешнего редактора у меня указана строка:

Code: Select all

-new_console D:\TOOLS\Text\Vim\vim81\vim.exe "!.!"
-new_console — это ключик к ConEmu чтобы открыть эту фигню в новой вкладке. Так вот, раньше такой командой по AltF4 файл открывался в виме в новой вкладке конэму. Теперь же открывается новая вкладка, а в ней:
""-new_console"" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


Current directory:
D:\Work\Paragamer.git\translated

Command to be executed:
"C:\WINDOWS\system32\cmd.exe" /C ""-new_console" D:\TOOLS\Text\Vim\vim81\vim.exe "24-interlude-2.md""


ConEmuC: Root process was alive less than 10 sec, ExitCode=1.
Press Enter or Esc to close console...
Upd. Хотя оказалось, что конэму понимает, если этот ключ переставить в конец строки параметров.

Code: Select all

D:\TOOLS\Text\Vim\vim81\vim.exe "!.!" -new_console
В таком виде всё работает как раньше.
Last edited by Wave on Mon 21 Dec, 2020 23:58, edited 1 time in total.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Запускатель и PATHEXT

Post by Taciturn »

Начиная с 5709 и включая 5776, 32 и 64 битные версии, от 32-битной XP SP3 и до 64-битной Windows 10 со всеми апдетами. Запускам Far с правами администратора, скачиваем куда-нибудь https://proximasoftware.com/files/FontE ... 8R3x32.exe, пытаемся запустить — ничего не запускается. 5707 и ниже — никаких проблем.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Запускатель и PATHEXT

Post by DrKnS »

Taciturn wrote: Tue 06 Apr, 2021 20:02 https://proximasoftware.com/files/FontE ... 8R3x32.exe, пытаемся запустить — ничего не запускается.
Увы, инсталлер написан наркоманами:
- они смотрят свою комстроку
- они ищут в ней последовательность [кавычка, пробел]
- если не нашли, завершают работу.

Как-то так:
  1. int WinMain(...)
  2.  
  3. {
  4.  
  5.     wchar_t buffer[584];
  6.  
  7.     lstrcpy(buffer, GetCommandLineW());
  8.  
  9.     if (wcsstr(buffer, L"\" ")
  10.  
  11.     {
  12.  
  13.         install();
  14.  
  15.         return 0;
  16.  
  17.     }
  18.  
  19.     return 1;
  20.  
  21. }

"Раньше" работало, потому что для запуска безусловно использовалась ShellExecuteEx, которая безусловно окавычивает команду и зачем-то добавляет в конце пробел.
Теперь ShellExecuteEx используется после CreateProcess, а CreateProcess пробелов не добавляет.
По этой же причине эта чудо-программа не запускается, например, из cmd.

Если запускать из комстроки, дописав после имени 2 пробела, тогда запустится.
Если запускать из cmd, дописав после имени кавычку и пробел, то тоже запустится.
Post Reply

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