Запуск программы в зависимости от архитектуры Windows
Случается, что в каталоге программы или двух её подкаталогах расположены 2 версии - 32-х и 64-хбитной разрядности. Посему для оптимальной работы желателен запуск (в т.ч. с параметрами) в соответствии с архитектурой текущей системы. Следующий VBS-скрипт решает эту задачу.
'===================================== VBS =====================================
' Запустить программу с параметрами в зависимости от архитектуры Windows (32/64)
' Примечание: Eсли при запуске из x64-системы в папке с <Prog>.exe не окажется
' <Prog>64.exe, то для запуска будет выбран файл <папка-родитель>64\<Prog>.exe
' Параметры: "<путь к 32-битной программе>" <не/скрывать:1/0> <ключи/параметры>
' Пример: "%%COMMANDER_PATH%%\Utils\Program\Program.exe" 1 param1 "param 2"
'===============================================================================
With WScript.Arguments
C = .Count : Prog = .Item(0) : Hide = .Item(1)
If C > 2 Then For i = 2 to C - 1 : P = P & " """ & .Item(i) & """" : Next
End With
With CreateObject("WScript.Shell")
If .Environment("System")("PROCESSOR_ARCHITECTURE") <> "x86" Then Arch = 64
If Arch Then
Util = Left(Prog, Len(Prog) - 4) & Arch & Right(Prog, 4)
With CreateObject("Scripting.FileSystemObject")
If Not .FileExists(Util) Then _
Util = .GetParentFolderName(Prog) & Arch & "\" & .GetFileName(Prog)
End With
Else Util = Prog End If : .Run """" & Util & """" & P, Hide
End With
Flasher
28.03.2016