Страница 2 из 9

Добавлено: Чт янв 19, 2012 15:02
Flasher
gora
Вообще что-то мне в голову не приходит как быть в случае, если пользователь использует TC8pb(1-9), ведь фактически для этого переменная и вводилась, чтобы можно было различать особенности запущенной копии. Есть ещё вариант со считыванием заголовка активного окна, но тут wsc нужен с библиотекой. Мне кажется нет вообще смысла акцентировать внимание на устаревших бетах, достаточно предупредить.

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

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

Set pltfTC=x86& If Defined COMMANDER_EXE If Not "%COMMANDER_EXE%"=="%COMMANDER_EXE:64=%" Set pltfTC=x64

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

Забыл спросить, то, что файлы запускаемых exe могут лежать в COMMANDER_PATH, подразумевается?

Добавлено: Чт янв 19, 2012 16:17
Avada
Flasher писал(а):Вообще что-то мне в голову не приходит как быть в случае, если пользователь использует TC8pb(1-9)
Строго говоря, никак не быть. Бета (тем более ранняя) — она бета и есть. Потестировали — заменили на более свежую. И так вплоть до финального релиза. Если пользователь этого делать не хочет, последствия за его счёт.
gora писал(а):Если не предложит ни кто ни чего стоящего, то придется видимо проигнорировать первые 9 бет
ИМХО, это надо проигнорировать в любом случае. Беспроблемную работу с уже отработавшими своё бетами никто некому обеспечивать не обязан.

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

А насчет первых бет 8-ки тоже поддерживаю мнение, что не стоит на них заморачиваться, на то они и беты, чтобы попробовать и обновить версию.

Добавлено: Чт янв 19, 2012 16:26
Flasher
MVV писал(а):Можно не имя экзешника тотала проверять, а размер файла. У 32-битки он строго меньше 5 метров, у 64-битки - строго больше 7.
Это непринципиально, важно определить что именно этот процесс является активным ТС.

Добавлено: Чт янв 19, 2012 16:28
gora
Flasher писал(а):файлы запускаемых exe могут лежать в COMMANDER_PATH, подразумевается?
Запускаемые ехе это про кнопку? Нет они могут лежать где угодно, да и файл будет один и скрипт будет в нем (внутри файла инсталятора кнопки) ;)

Добавлено: Чт янв 19, 2012 16:30
Flasher
gora писал(а):Запускаемые ехе это про кнопку?
Нет, про exe-шники Тотала. Если бы они точно не лежали в одной папке, то вопрос просто решался бы.

Добавлено: Чт янв 19, 2012 18:48
MVV
Надо найти дескриптор окна тотала (первый найденный будет дескриптором последнего активного), по нему найти PID процесса, а дальше можно найти путь.

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

MVV
Это не для батника...

Добавлено: Чт янв 19, 2012 19:06
Flasher
MVV писал(а):Надо найти дескриптор окна тотала
Для себя то сделать не проблема через autorun ( SetEnv /A /EV TCHANDLE %AUTORUN_TCHANDLE% ), а для других...
gora писал(а):Но у пользователя это не определено!
В смысле "не определено"? Пользователь не знает, что у него в папке? :D

Добавлено: Чт янв 19, 2012 19:10
gora
Flasher писал(а):В смысле "не определено"? Пользователь не знает, что у него в папке?
Инсталлятор не знает к какому пользователю он попадет и что у пользователя в папке запущенного ТС может лежать. Оба ТС там или только один!?

Добавлено: Чт янв 19, 2012 19:16
Flasher
gora
Инсталлятор - да, но не пользователь же. :wink:
Думаю, что можно ещё найти способ определять, в какую нить попал инстоллятор, т.е. кто его родитель, тогда всё упростится. На WMI надо поглядеть.

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

PS.
Скрипт при этом будет располагаться во временной папке.

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

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