Определить разрядность запущенного TC
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
А, значит, с XP проблема. В Win7 как?
Что в окне на XP показывает?:
Что в окне на XP показывает?:
Код: Выделить всё
Set TCPath = CreateObject("Shell.Application").NameSpace(CreateObject("WScript.Shell").Environment("Process")("COMMANDER_PATH") & "\")
MsgBox TCPath.GetDetailsOf(TCPath.ParseName("Totalcmd.exe"), 34)Встроенные макросы:
@CPUArch - Returns "X86" when the CPU is a 32-bit CPU and "X64" when the CPU is 64-bit.
@OSArch - Returns one of the following: "X86", "IA64", "X64" - this is the architecture type of the currently running operating system.
@OSVersion - Returns one of the following: "WIN_2008R2", "WIN_7", "WIN_8", "WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP", "WIN_XPe", "WIN_2000".
Однако автору нужно немного другое - http://www.autoitscript.com/forum/topic ... ions-udfs/ - набор UDF функций, среди которых такие:
; _ProcessIs32Bit() ; Returns True if Process is 32-bit (makes _ProcessIsWow64() use more simpler)
; _ProcessIs64Bit() ; Returns True if Process is 64-bit (makes _ProcessIsWow64() use more simpler)
Дальнейшее дело техники - смотрим путь к запущенному процессу тотала в переменных окружения и определяем его битность вышеуказанными функциями. Можно откомпилить скрипт как консольное приложение, возвращающее нужное значение.
Единственное неудобство откомпиленных скриптов - это размер (будет не меньше чем ~300 KB).
@CPUArch - Returns "X86" when the CPU is a 32-bit CPU and "X64" when the CPU is 64-bit.
@OSArch - Returns one of the following: "X86", "IA64", "X64" - this is the architecture type of the currently running operating system.
@OSVersion - Returns one of the following: "WIN_2008R2", "WIN_7", "WIN_8", "WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP", "WIN_XPe", "WIN_2000".
Однако автору нужно немного другое - http://www.autoitscript.com/forum/topic ... ions-udfs/ - набор UDF функций, среди которых такие:
; _ProcessIs32Bit() ; Returns True if Process is 32-bit (makes _ProcessIsWow64() use more simpler)
; _ProcessIs64Bit() ; Returns True if Process is 64-bit (makes _ProcessIsWow64() use more simpler)
Дальнейшее дело техники - смотрим путь к запущенному процессу тотала в переменных окружения и определяем его битность вышеуказанными функциями. Можно откомпилить скрипт как консольное приложение, возвращающее нужное значение.
Единственное неудобство откомпиленных скриптов - это размер (будет не меньше чем ~300 KB).
Это все решаемо (и без %COMMANDER_EXE%)
Пока что неизвестно, устроит ли АвтоИт автора (и будет ли он писать сам, или ему потребуется помощь Автоитчиков), так что не стоит пока гнать лошадей.
Лично я бы на месте автора, если бы решил использовать Автоит, переписал бы всю логику на нем, избавившись от остальных батников и скриптов (так, что остался бы один откомпилированный скрипт, выполняющий всю необходимую работу).
Так что я предлагаю сперва дождаться ответа автора, а потом уже думать как это реализовать.
Пока что неизвестно, устроит ли АвтоИт автора (и будет ли он писать сам, или ему потребуется помощь Автоитчиков), так что не стоит пока гнать лошадей.
Лично я бы на месте автора, если бы решил использовать Автоит, переписал бы всю логику на нем, избавившись от остальных батников и скриптов (так, что остался бы один откомпилированный скрипт, выполняющий всю необходимую работу).
Так что я предлагаю сперва дождаться ответа автора, а потом уже думать как это реализовать.
Каких лошадей, если человек постучался с конкретным вопросом? Там как раз AutoIt и применяется.Samwatas писал(а):Пока что неизвестно, устроит ли АвтоИт автора (и будет ли он писать сам, или ему потребуется помощь Автоитчиков), так что не стоит пока гнать лошадей.
Наверняка gora мыслил аналочно, но, видимо, не всё там срослось.Samwatas писал(а):Лично я бы на месте автора, если бы решил использовать Автоит, переписал бы всю логику на нем, избавившись от остальных батников и скриптов
Где? Я не ставил себе эту кнопку поскольку не нуждаюсь в таком функционале.Там как раз AutoIt и применяется.
На конкретный вопрос (как определить битность тотала) я дал конкретный ответ (На Автоите можно использовать пользовательские ф-ции _ProcessIs32Bit() и _ProcessIs64Bit() - вполне возможно автор просто не знал о такой пользовательской библиотеке).
Если необходима конкретная реализация, то я могу завтра набросать что нибудь на эту тему.