Определить разрядность запущенного TC

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):для какого ТС устанавливать кнопку в общую папку?
Для того ТС, который запущен. Запустит х86 ТС - получит установку х86 кнопки, запустит х64 ТС - получит х64 кнопку. Это выбор пользователя.
Flasher писал(а):Ведь wincmd.ini общий
Кнопка не использует его и не прописывается в нем.
Flasher писал(а):а 32-разрядная кнопка на TCx64 не работает?
Работает.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):Работает.
Хм. Коли так, тогда не проще проверять по архитектуре ОС? Ведь TCx64 на 32-битной ОС использовать нет смысла. :idea:
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):тогда не проще проверять по архитектуре ОС?
У меня стоят ТС обеих разрядностей и в каждом стоит кнопка соответствующей разрядности. Думаю, что такое может быть и у других пользователей.
Также пользователь х64 ОС может не желать использовать беты ТС и будет продолжать пользоваться ТС 7, т.е. х86. Значит ему и кнопка х64 может не пригодится.
В любом случае кнопка и ТС одной разрядности - лучший вариант.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
А Кнопкаx64 из TCx32 на Winx64 разве не работает?
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher
Работает, но я не думаю, что это правильно.
Мы уже отклонились от темы ветки.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):но я не думаю, что это правильно.
А по-моему, как раз правильно. Именно так и надо ставить, ИМХО.

Вроде уже знаю, что делать. Для начала из TCx64pb10+ надо вызвать vbs:

Код: Выделить всё

For Each p in GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("SELECT CreationClassName, CSCreationClassName, OSCreationClassName FROM Win32_Process WHERE ExecutablePath Like '" & Replace(CreateObject("WScript.Shell").Environment("Process")("COMMANDER_EXE"),"","\")& "'")
MsgBox p.CreationClassName & vbNewline & p.CSCreationClassName & vbNewline & p.OSCreationClassName
Next
Что покажет - скинуть сюда.
2All: Кто-нибудь, у кого 64-система, подключитесь, это полминуты проверить.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Win7 x64 SP1, TC 8.0β16 x64:
---------------------------

---------------------------
Win32_Process

Win32_ComputerSystem

Win32_OperatingSystem
---------------------------
ОК
---------------------------
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

CaptainFlint
Спасибо за отзыв.
Хм. Тогда по другому сделаю.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Одним из способов получения местоположения ini файлов в старых версиях ТС, до введения соответствующей переменной был программный запуск About и чтение адресов из него. Думаю возможно воспользоваться тем же методом и для получения информации о разрядности ТС.
Например в моём About'е написано:
Total Commander Version 7.55a 32 bit (7.7.2010)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Так там надо строки расшифровывать в ini, Не, не пойдёт.

gora
Я могу всё сделать, только мне нужна цепочка программ. Точнее их число.
Т.е. TC > установщик > батник > скрипт. Или как-то ещё.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):нужна цепочка программ.
OS -> TC -> SFX -> CMD (батник)
1 OS - х64 или x86
2 TC - х64 или x86
3 SFX - всегда x86
4 CMD сейчас x86, но может запускаться в среде с разрядность OS (если это нужно разработчику)
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
Мне главное цепочка, битности не нужны. Скрипт что должен запускать? Установщик, батник или что?
Или он должен просто какое-то значение возвращать?
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher
Какой скрипт? Мне нужно определить разрядность запущенного ТС. Я это делаю из батника и там же принимается решение о дальнейших действиях. Вот собственно и вся задача.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
А как же?:
gora писал(а):
Flasher писал(а):На vbs можно ещё одним способом
Можно увидеть реализацию?
....
Скрипт нужен для инсталлятора. Он должен определить разрядность запущенного ТС (из которого запущен сам инсталлятор/скрипт) автоматически, без вмешательства пользователя.
PS.
Скрипт при этом будет располагаться во временной папке.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher
Хотел увидеть как можно получить разрядность запущенного ТС с помощью vbs. Использовать совместно батник и vbs для меня не зазорно. У меня и сейчас два vbs скрипта запускаются из этого батника, ну будет три... :)
Win7 SP1 Ultimate x64, TC8.52a x64
Ответить