Страница 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
Вахмурка
Сегодня домой не пустят? :D
Обращусь тогда пока ко остальным, если ответ не последует, пиши завтра.

В общем, кто-нибудь, у кого 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
Да мой скрипт нормально работает для исходной задачи. Зачем лишние телодвижения?