Как получить сведения о версиях Far и ОС в штатном случае?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by citRiks »

Периодически при обсуждении того или иного скрипта необходимо приводить информацию о том, в каких условиях проходило тестирование. А для этого желательно иметь возможность оперативно получить объективные сведения о версиях Far и об ОС. В случаях внештатных ситуаций такие сведения можно взять из красных диалогов исключений. А как их можно получить в штатном случае?
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by Smitis »

ФАР и плагины: far:about
ОС: ver
Разум когда-нибудь победит.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by citRiks »

Так весьма неудобно. И если вторую строку хотя бы и можно вывести в файл ver>ver.txt, то с far:about ни как не получается. И приходится информацию по Фару доставать, вручную прокручивая экран, а потом копируя через Alt+Ins.

А хотелось бы, всё-таки макросом в диалог выводить, а оттуда уже копировать куда требуется.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Как получить сведения о версиях Far и ОС в штатном случае?

Post by buniak_a_h »

citRiks, lua:=far.AdvControl("ACTL_GETFARMANAGERVERSION")
Вариант (если нужен только 4-й элемент)
lua:=({far.AdvControl("ACTL_GETFARMANAGERVERSION", true)})[4]
Last edited by buniak_a_h on Mon 30 Dec, 2019 11:35, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by citRiks »

Так уже намного лучше. Макрос даже можно составить.

Но если сравнить получаемые таким образом сведения:

Code: Select all

3.0.0.5543.0 
10.0.17763.914
с выдаваемыми в диалоге исключения:

Code: Select all

3.0.0.5543 x86 (6e9737a)
10.0.17763.2.0.0.256.1 (version 1809, OS build 17763.914)
то сразу бросается в глаза отсутствие существенного указания на платформу в первом случае. По крайней мере, в данных, выдаваемых по far:about, такие сведения есть.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Как получить сведения о версиях Far и ОС в штатном случае?

Post by buniak_a_h »

citRiks, где-то мне встречался вопрос про то, как отличить в макросе x86 и x64 . Не могу вспомнить. А на самом деле вещь ну очень нужная: некоторые плагины просто НИЗЗЯ юзать под одной платформой (либо валятся, либо версия устарелая и не поддерживается), а под 32-р - замечательно. Так, мне пришлось отказаться от s&r для 32-р, хотя там он работал - просто чтоб набор макросов был для обеих платформ одинаковый. Впрочем, конкретно этот плагин уже и не жалко. Спиноза, похоже, решил сделать его платным … :-)
Короче, может, найдёте … Сообщите.
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by Xerox »

buniak_a_h, украдено мной отсюда:
viewtopic.php?t=9167

х32/х64 самого ФАРа:
lua:=jit.arch
lua:=win.IsProcess64bit()
lua:=win.GetEnv("PROCESSOR_ARCHITECTURE")

х32/х64 ОС:
lua:=win.GetEnv("PROCESSOR_ARCHITEW6432")
Last edited by Xerox on Fri 03 Jan, 2020 10:36, edited 2 times in total.
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by Xerox »

как вариант можно сделать что-то такое еще:
image.png
image.png (6 KiB) Viewed 1298 times
или:
edit:<filever.exe "%farhome%\far.exe" /v
.. и получить что-то такое:

Code: Select all

--a-- WAMD64 APP ENU      3.0.5532.0 shp  5,321,728 12-23-2019 far.exe
	Language	0x0409 (English (United States))
	CharSet		0x04b0 Unicode
	OleSelfRegister	Disabled
	CompanyName	Eugene Roshal & Far Group
	FileDescription	File and archive manager
	InternalName	Far
	OriginalFilenam	Far.exe
	ProductName	Far Manager
	ProductVersion	3.0.0.5532 x64
	FileVersion	3.0.0.5532 x64
	LegalCopyright	© Eugene Roshal, 1996-2000. © Far Group, 2000-2019

	VS_FIXEDFILEINFO:
	Signature:	feef04bd
	Struc Ver:	00010000
	FileVer:	00030000:159c0000 (3.0:5532.0)
	ProdVer:	00030000:159c0000 (3.0:5532.0)
	FlagMask:	0000003f
	Flags:		00000000
	OS:		00040004 NT Win32
	FileType:	00000001 App
	SubType:	00000000
	FileDate:	00000000:00000000
FileVer - это откуда-то из ms resourse kitс
Last edited by Xerox on Fri 03 Jan, 2020 10:51, edited 1 time in total.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Как получить сведения о версиях Far и ОС в штатном случае?

Post by Smitis »

Определение Win x64 (начиная с Висты) независимо от разрядности FAR:

Code: Select all

(win.GetEnv("PROCESSOR_ARCHITEW6432") or win.GetEnv("PROCESSOR_ARCHITECTURE") or "")=="AMD64"
Ограничение: в WinXP x64 переменная PROCESSOR_ARCHITEW6432 отсутствовала, поэтому такая система определится как x86
Разум когда-нибудь победит.
Post Reply

Return to “Нужна помощь”