Определение битности системы

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

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

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

Сообщение Flasher »

Вахмурка
А что покажет, если выполнить с кнопки на тулбаре?:

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

With CreateObject("WScript.Shell")
MsgBox .ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")
End With
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2Flasher
Пока на заведомо 32-битных осях. В понедельник вечером скажу.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка
Сегодня домой не пустят? :D
Обращусь тогда пока ко остальным, если ответ не последует, пиши завтра.

В общем, кто-нибудь, у кого Windows x64, вызовите vbs из ТС и доложите о результате здесь, пож-та.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Докладываю: х86
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Спасибо. Я начинаю думать, что PROCESSOR_ARCHITEW6432 работает только на x64 системах. Можешь в скрипте заменить на эту переменную и проверить?
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

AMD64
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка
Как подставлял? ("%PROCESSOR_ARCHITEW6432%") ?
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

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

With CreateObject("WScript.Shell")
MsgBox .ExpandEnvironmentStrings("%PROCESSOR_ARCHITEW6432%")
End With
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

i1

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

' Запуск проги из папки TC в зависимости от архитектуры Windows (32/64)
' Параметры: "\<относительный путь к x32-проге>" "\<отн. путь к x64-проге>"
' Пример: "\Utils\progaX32.exe" "\Utils\progaX64.exe"
'==================================================
With CreateObject("WScript.Shell")
If  Len(.ExpandEnvironmentStrings("%PROCESSOR_ARCHITEW6432%"))=24 Then
.Run """" & .ExpandEnvironmentStrings("%Commander_Path%") & WScript.Arguments(0) & """"
Else .Run """" & .ExpandEnvironmentStrings("%Commander_Path%") & WScript.Arguments(1) & """"
End If
End With
Последний раз редактировалось Flasher Вт янв 18, 2011 08:15, всего редактировалось 1 раз.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Испробую описанные здесь методы, а вначале укажу свой метод, о котором указано в третьем сообщении.
Вызываю через hidcon следующий cmd-файл:

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

IF EXIST "%ProgramFiles(x86)%" (
  Start /Wait CCleaner64.exe
) Else (
  Start /Wait CCleaner.exe
)
Для примера вписано название программы.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD
Данный пример не удовлетворяет условию топикстартера. Необходимо это лишь для переносного ТС, открываемого на разных ОС. А на своей машине и так понятно, какая архитектура и какие программы следует запускать. И потом, в моём скрипте указаны параметры, соответственно кнопок/команд может быть много, а скрипт будет один. В батнике это тоже можно сделать.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

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

Сообщение Flasher »

MVV
А что это изменит для данной ситуации? Только время зря потратишь..
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

А может быть тут такой батник сгодится?

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

Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry%  | Find /i "x86" 
If %ERRORLEVEL% == 0 (
    GOTO X86
) ELSE (
    GOTO X64
)


:X86
echo x86
pause

GOTO END
:X64

echo x64
pause

:End
Вместо эхов и пауз, ессно, ставим разный код для разных платформ.

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

Сообщение Flasher »

Volniy
Да мой скрипт нормально работает для исходной задачи. Зачем лишние телодвижения?
Ответить