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

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

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

Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

Если для неё - так и ладно, оставить только 32, как универсальную, ибо sfx ей можно приставлять любые, которые только найдутся, а памяти сверх 4 гигов и постоянного доступа в system32\ ей точно не нужно. В остальном преимущества х64 закончились.

Хотя, можно последовать примеру моей конфиги, добавляя обе версии, но для х64 и х32 использовать переключаемый бар, и просто навешивая нужную версию на нужный бар.
Flasher писал(а): топики читать надо..
Читал, но не заметил, извиняюс...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):Привязка к версии системы крайне не желательна. Скрипт должен работать на Win XP и выше любой разрядности.
Я не о работе, а о приёме. Мы же уже задейтсвуем один приём. Вот я и спрашиваю, объединить в указанный или отставить старый, добавив ещё один только для XP.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Вот я и спрашиваю, объединить в указанный или отставить старый, добавив ещё один только для XP.
К сожалению, понять этой фразы не смог. Что мне надо, я уже описал в ветке несколько раз, способы, методы, приемы и т.д, определяете Вы, главное - 100% результат работы скрипта во всех, неоднократно упомянутых в ветке, условиях.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
Тогда, не заморачиваясь, берём по-простому, глобально. Подправил.
Samwatas
Сообщения: 95
Зарегистрирован: Сб сен 12, 2009 20:26

Сообщение Samwatas »

Ну вот, я писал-писал сегодня, а это оказывается уже не нужно (мой скрипт определяет и путь к тоталу, и разрядность).

[mod="Avada"]Несколько дальнейших постов того же посетителя были им впоследствии "отредактированы" путём полного убирания содержания. Последствия для логики дальнейшего обсуждения очевидны. Соответствующие посты удалены, комментарии даны в ЛС.[/mod]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Samwatas
Да как же не нужно? Мне нужно.
Flasher писал(а):Я бы тоже непрочь увидеть (вместе с определением пути, конечно).
:)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Samwatas
Судя по размеру моего скрита и "На AutoIt это сделать гораздо проще." не вижу смысла в компиляции. Просьба выложить код.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Жестоко. :mrgreen: Аж 6 библиотек..
Спасибо, тяжеловатенько, конечно. Т.е. гораздо проще оказалось у меня в итоге. Ну, ничего, зато полезно освоить. :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Samwatas писал(а):Во вторых, я поднимаюсь по дереву родительских процессов на любую высоту (а не фиксированную).
В третих, при поиске тоталовского процесса я не ориентируюсь ни на имя екзешника (который очень легко изменить), ни на заголовок окна (по тем же причинам)
Я тоже. :)
Samwatas писал(а):ни на размер екзешника (UPX тоже никто не отменял).
Так UPX на сжатие, а я проверяю по большему, а не по меньшему. :wink:
Samwatas писал(а):Ну и подводя итоги, для решения этой задачи можно написать приложение на чистом С/С++ (результат получится гарантированно и быстрее, и меньше по размеру).
И не только на C++. Мой скрипт весит 1 Кб. :)
Samwatas
Сообщения: 95
Зарегистрирован: Сб сен 12, 2009 20:26

Сообщение Samwatas »

А что делает эта строка:

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

Do Until StrComp(Left(Name, 8), "totalcmd", 1) = 0 And StrComp(FSO.GetExtensionName(Name), "exe", 1) = 0 
И что будет, если я изменю имя экзешника (и строка "totalcmd" будет отсутствовать вообще).
Если размер екзешника < 7 MB - это:
32битный тотал (несжатый) или 64битный тотал (сжатый)?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Samwatas писал(а):А что делает эта строка:
Ту самую проверку на бесконечную глубину, пока не найдёт exe-шник с нужным именем.
Samwatas писал(а):И что будет, если я изменю имя экзешника (и строка "totalcmd" будет отсутствовать вообще).
Подразумевается, что такими исправлениями имени никто не воспользуется. Это несколько странно. А как же ты определяешь, что это тот самый Тотал?
Samwatas писал(а):Если размер екзешника < 7 MB - это:
32битный тотал (несжатый) или 64битный тотал (сжатый)?
А разве есть x64 сжатый? Вроде Гислер отказался выпускать в таком виде. Последняя версия - 7.56a.
Последний раз редактировалось Flasher Ср янв 25, 2012 00:49, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Samwatas писал(а):Я уже отвечал выше:
Не видел. Хм. Пойду искать, как получить класс окна, сомневаюсь, что найду...
Samwatas писал(а):У меня такой вопрос - если запустить 32б тотал из 64б тотала, то куда будет указывать %COMMANDER_PATH%?
Не знаю, под рукой нет 64.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher, спасибо.
Замечание Samwatas, на счет изменение имени, справедливо. И если принять за основу, что файл НЕ переименован, то незачем тестировать размер, ибо оригинальное имя уже несет информацию о разрядности. А если он все же переименован, то скрипт зависает (проверено).
Samwatas писал(а):У меня такой вопрос - если запустить 32б тотал из 64б тотала, то куда будет указывать %COMMANDER_PATH%?
Всегда показывает на последний ТС из которого и произведен запуск команды проверки, например из ком. строки :

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

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

Сообщение Flasher »

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

Сообщение gora »

Flasher писал(а):Преполагалось, что переименование может быть адекватным, т.е. убор 64 на конце.
Это сомнительно. Адекватно - это не переименовывать, а уж если предполагать переименование, то любое.

Добавлено спустя 5 минут:

Если предполагать, что пользователь не должен менять оригинальное имя и отбросить первые 9 бет версии x64 (ибо для версии x86 это значения не имеет), то вся задача решается батником в 10 строк.
Win7 SP1 Ultimate x64, TC8.52a x64
Ответить