Страница 2 из 5
Добавлено: Вс янв 16, 2011 07:34
Flasher
Вахмурка
А что покажет, если выполнить с кнопки на тулбаре?:
Код: Выделить всё
With CreateObject("WScript.Shell")
MsgBox .ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")
End With
Добавлено: Вс янв 16, 2011 19:24
Вахмурка
2Flasher
Пока на заведомо 32-битных осях. В понедельник вечером скажу.
Добавлено: Вс янв 16, 2011 19:34
Flasher
Вахмурка
Сегодня домой не пустят?

Обращусь тогда пока ко остальным, если ответ не последует, пиши завтра.
В общем, кто-нибудь, у кого Windows x64, вызовите vbs из ТС и доложите о результате здесь, пож-та.
Добавлено: Пн янв 17, 2011 13:45
Вахмурка
Докладываю: х86
Добавлено: Пн янв 17, 2011 19:22
Flasher
Спасибо. Я начинаю думать, что PROCESSOR_ARCHITEW6432 работает только на x64 системах. Можешь в скрипте заменить на эту переменную и проверить?
Добавлено: Пн янв 17, 2011 20:08
Вахмурка
AMD64
Добавлено: Пн янв 17, 2011 20:50
Flasher
Вахмурка
Как подставлял? ("%PROCESSOR_ARCHITEW6432%") ?
Добавлено: Пн янв 17, 2011 21:03
Вахмурка
Код: Выделить всё
With CreateObject("WScript.Shell")
MsgBox .ExpandEnvironmentStrings("%PROCESSOR_ARCHITEW6432%")
End With
Добавлено: Пн янв 17, 2011 21:10
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
Добавлено: Вт янв 18, 2011 01:37
LonerD
Испробую описанные здесь методы, а вначале укажу свой метод, о котором указано в третьем сообщении.
Вызываю через hidcon следующий cmd-файл:
Код: Выделить всё
IF EXIST "%ProgramFiles(x86)%" (
Start /Wait CCleaner64.exe
) Else (
Start /Wait CCleaner.exe
)
Для примера вписано название программы.
Добавлено: Вт янв 18, 2011 03:50
Flasher
LonerD
Данный пример не удовлетворяет условию топикстартера. Необходимо это лишь для переносного ТС, открываемого на разных ОС. А на своей машине и так понятно, какая архитектура и какие программы следует запускать. И потом, в моём скрипте указаны параметры, соответственно кнопок/команд может быть много, а скрипт будет один. В батнике это тоже можно сделать.
Добавлено: Вт янв 18, 2011 12:23
MVV
В принципе, совсем несложно написать DLL в виде плагина для Autorun.wdx, которая будет проверять битность системы и устанавливать значение некоей переменной окружения - т.к. она будет загружаться в окружении TC, установленные в ней переменные будут видны в TC. Тогда имя и значение переменной можно выбрать любые.
Добавлено: Вт янв 18, 2011 12:39
Flasher
MVV
А что это изменит для данной ситуации? Только время зря потратишь..
Добавлено: Вт янв 18, 2011 12:57
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 еще проще такое сделать будет.
Добавлено: Вт янв 18, 2011 13:06
Flasher
Volniy
Да мой скрипт нормально работает для исходной задачи. Зачем лишние телодвижения?