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

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

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

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
Вообще что-то мне в голову не приходит как быть в случае, если пользователь использует TC8pb(1-9), ведь фактически для этого переменная и вводилась, чтобы можно было различать особенности запущенной копии. Есть ещё вариант со считыванием заголовка активного окна, но тут wsc нужен с библиотекой. Мне кажется нет вообще смысла акцентировать внимание на устаревших бетах, достаточно предупредить.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher
Считывание заголовка окна мне не очень нравится, учитываю возможности наших "умельцев" все крякать и патчить... :(
Если не предложит ни кто ни чего стоящего, то придется видимо проигнорировать первые 9 бет и ограничится простой строкой в батнике:

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

Set pltfTC=x86& If Defined COMMANDER_EXE If Not "%COMMANDER_EXE%"=="%COMMANDER_EXE:64=%" Set pltfTC=x64
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):ни кто ни чего
:)
Можно ещё проверять запущенные процессы на присутствие 64 в имени, но как быть, если запущен и тот и другой, неясно...

Забыл спросить, то, что файлы запускаемых exe могут лежать в COMMANDER_PATH, подразумевается?
Последний раз редактировалось Flasher Чт янв 19, 2012 16:17, всего редактировалось 1 раз.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Flasher писал(а):Вообще что-то мне в голову не приходит как быть в случае, если пользователь использует TC8pb(1-9)
Строго говоря, никак не быть. Бета (тем более ранняя) — она бета и есть. Потестировали — заменили на более свежую. И так вплоть до финального релиза. Если пользователь этого делать не хочет, последствия за его счёт.
gora писал(а):Если не предложит ни кто ни чего стоящего, то придется видимо проигнорировать первые 9 бет
ИМХО, это надо проигнорировать в любом случае. Беспроблемную работу с уже отработавшими своё бетами никто некому обеспечивать не обязан.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Можно не имя экзешника тотала проверять, а размер файла. У 32-битки он строго меньше 5 метров, у 64-битки - строго больше 7.

А насчет первых бет 8-ки тоже поддерживаю мнение, что не стоит на них заморачиваться, на то они и беты, чтобы попробовать и обновить версию.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Можно не имя экзешника тотала проверять, а размер файла. У 32-битки он строго меньше 5 метров, у 64-битки - строго больше 7.
Это непринципиально, важно определить что именно этот процесс является активным ТС.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):файлы запускаемых exe могут лежать в COMMANDER_PATH, подразумевается?
Запускаемые ехе это про кнопку? Нет они могут лежать где угодно, да и файл будет один и скрипт будет в нем (внутри файла инсталятора кнопки) ;)
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):Запускаемые ехе это про кнопку?
Нет, про exe-шники Тотала. Если бы они точно не лежали в одной папке, то вопрос просто решался бы.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Надо найти дескриптор окна тотала (первый найденный будет дескриптором последнего активного), по нему найти PID процесса, а дальше можно найти путь.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Если бы они точно не лежали в одной папке
Если бы... Но у пользователя это не определено!

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

Сообщение Flasher »

MVV писал(а):Надо найти дескриптор окна тотала
Для себя то сделать не проблема через autorun ( SetEnv /A /EV TCHANDLE %AUTORUN_TCHANDLE% ), а для других...
gora писал(а):Но у пользователя это не определено!
В смысле "не определено"? Пользователь не знает, что у него в папке? :D
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

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

Сообщение Flasher »

gora
Инсталлятор - да, но не пользователь же. :wink:
Думаю, что можно ещё найти способ определять, в какую нить попал инстоллятор, т.е. кто его родитель, тогда всё упростится. На WMI надо поглядеть.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Инсталлятор - да, но не пользователь же.
Скрипт нужен для инсталлятора. Он должен определить разрядность запущенного ТС (из которого запущен сам инсталлятор/скрипт) автоматически, без вмешательства пользователя.

PS.
Скрипт при этом будет располагаться во временной папке.
Последний раз редактировалось gora Чт янв 19, 2012 19:39, всего редактировалось 1 раз.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
Да я всё уже давно прекрасно понял, я отписал только касаемо фразы.
И кстати, если таки в папке есть ТС с разной битностью, то как узнать, для какого ТС устанавливать кнопку в общую папку? Ведь wincmd.ini общий.

И вот вопрос: а 32-разрядная кнопка на TCx64 не работает?
Ответить