| View previous topic :: View next topic |
| Author |
Message |
gora

Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Mon Jan 23, 2012 18:13 Post subject: |
|
|
Flasher
Скрипт не учитывает, как оказалось, разрядность системы. На х64 ОС он работает, а на х86 он выдает битность ТС - х64, т.к., суффикса "32" там у процесса нет. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 23, 2012 18:16 Post subject: |
|
|
| gora wrote: | | на х86 он выдает битность ТС - х64, т.к., суффикса "32" там у процесса нет. | У меня Win7x86, всё там есть. |
|
| Back to top |
|
 |
gora

Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Mon Jan 23, 2012 18:23 Post subject: |
|
|
Flasher
Проверял на ХРх86, выдает битность ТС - х64 _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 23, 2012 18:29 Post subject: |
|
|
А, значит, с XP проблема. В Win7 как?
Что в окне на XP показывает?:
| Code: | Set TCPath = CreateObject("Shell.Application").NameSpace(CreateObject("WScript.Shell").Environment("Process")("COMMANDER_PATH") & "\")
MsgBox TCPath.GetDetailsOf(TCPath.ParseName("Totalcmd.exe"), 34) |
|
|
| Back to top |
|
 |
gora

Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Mon Jan 23, 2012 18:59 Post subject: |
|
|
Flasher
С данной строкой показывает:
XPx86 - пустое окно (ни чего не написано)
7x86 - Total Commander 32 bit
7x64 - Описание файла _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 23, 2012 19:06 Post subject: |
|
|
gora
Так, понятно. Значит, что я могу тут предложить:
1) Проверять только по присутсвию 64 на конце базового имени exe-ника.
2) Проверять версию OS, если XP, то - по имени, если нет, то - как обычно. |
|
| Back to top |
|
 |
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Mon Jan 23, 2012 22:37 Post subject: |
|
|
| На AutoIt это сделать гораздо проще. Или нужно именно vbs? |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 23, 2012 22:57 Post subject: |
|
|
Samwatas
Думаю, что автору как раз на AutoIt лучше. |
|
| Back to top |
|
 |
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Mon Jan 23, 2012 23:19 Post subject: |
|
|
Встроенные макросы:
@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/115352-process-thread-dll-functions-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). |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 23, 2012 23:36 Post subject: |
|
|
Samwatas
А определить путь exe-шника? |
|
| Back to top |
|
 |
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Tue Jan 24, 2012 00:01 Post subject: |
|
|
%COMMANDER_PATH%\%COMMANDER_EXE% (начиная с 8 версии)
Для предыдущих нужно будет чуть усложнить (при этом обеспечив гарантированное определение). |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jan 24, 2012 00:03 Post subject: |
|
|
Samwatas
А тему почитать? Начиная не просто с 8...
Гарантированное определение нужно для pb1-9. |
|
| Back to top |
|
 |
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Tue Jan 24, 2012 00:18 Post subject: |
|
|
Это все решаемо (и без %COMMANDER_EXE%)
Пока что неизвестно, устроит ли АвтоИт автора (и будет ли он писать сам, или ему потребуется помощь Автоитчиков), так что не стоит пока гнать лошадей.
Лично я бы на месте автора, если бы решил использовать Автоит, переписал бы всю логику на нем, избавившись от остальных батников и скриптов (так, что остался бы один откомпилированный скрипт, выполняющий всю необходимую работу).
Так что я предлагаю сперва дождаться ответа автора, а потом уже думать как это реализовать. |
|
| Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jan 24, 2012 00:55 Post subject: |
|
|
| Samwatas wrote: | | Пока что неизвестно, устроит ли АвтоИт автора (и будет ли он писать сам, или ему потребуется помощь Автоитчиков), так что не стоит пока гнать лошадей. | Каких лошадей, если человек постучался с конкретным вопросом? Там как раз AutoIt и применяется.
| Samwatas wrote: | | Лично я бы на месте автора, если бы решил использовать Автоит, переписал бы всю логику на нем, избавившись от остальных батников и скриптов | Наверняка gora мыслил аналочно, но, видимо, не всё там срослось. |
|
| Back to top |
|
 |
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Tue Jan 24, 2012 01:28 Post subject: |
|
|
| Quote: | | Там как раз AutoIt и применяется. |
Где? Я не ставил себе эту кнопку поскольку не нуждаюсь в таком функционале.
На конкретный вопрос (как определить битность тотала) я дал конкретный ответ (На Автоите можно использовать пользовательские ф-ции _ProcessIs32Bit() и _ProcessIs64Bit() - вполне возможно автор просто не знал о такой пользовательской библиотеке).
Если необходима конкретная реализация, то я могу завтра набросать что нибудь на эту тему. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|