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

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Thu Sep 17, 2015 23:46 Post subject: %PROCESSOR_ARCHITECTURE% в wincmd.ini и совместимость Win9X |
|
|
Есть загвоздка с компоновкой 32 и 64 битных версий тотала (на флешку) софтом соответствующей разрядности. Например, тот же Akelpad и RAR - вполне себе есть под обе версии.
Пока обхожусь двумя wincmd.ini для использования х64 софта на ТС64, но это немного геморно, т.к. это требует ключа /i, что не всегда приемлемо.
Но посетила меня мысль - обозвать, например, путь к Akelpad через переменную "%PROCESSOR_ARCHITECTURE%".
Т.е., вместо привычного
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad\AkelPad.exe
будет
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad_%PROCESSOR_ARCHITECTURE%\AkelPad.exe
Только один нюанс вылазит - на Win9X подобный трюк не прокатит (там просто нет такой переменки).
Собственно, вопросы:
1. Кто как решал задачу совместной работы двух разрядностей тоталовского редактора для F4 и архиватора RAR?
2. Есть ли смысл воротить огород с именно этой переменной, или есть варианты получше? (но чтоб обойтись одной универсальной строкой на оба варианта!)
3. Наслышан, что %PROCESSOR_ARCHITECTURE% имеет больше двух значений (внезапно!). Как обойти?
П.С.
Вариант с созданием временных переменных и прочей требухи не проходит, т.к. это надо на флешку, на разные системы, где в большинстве случаев нет ни админских прав, ни прочих радостей автоматизации. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Sep 17, 2015 23:55 Post subject: |
|
|
Mellomann
Переливаем из пустого в порожнее? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Fri Sep 18, 2015 00:05 Post subject: |
|
|
Так-то мысль уже давно не свежая, но на практике вылазит несостоятельность пройденных "решений" из тех тем...
Итак, дабы три раза не вставать:
1. Установка ещё одной переменной - не подходит.
2. Вариант консольного монстра if exist.... else.... - не подходит.
3. Привязка к внешней запускалке - не подходит.
Да и основной вопрос - работа на Win9X (о да, я к некрофилам тоже хожу) - не раскрыт.
Несмотря на особенности именно этой переменной - чую, что это самое надёжное решение, но хотелось бы знать наверняка, вдруг что получше есть...
Есть другие идеи? |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Sep 18, 2015 00:34 Post subject: |
|
|
1, 3 - на Win9x не пробовал, на остальных проблем не встречал.
Т.е. будет работать и такая канитель
Code: | Editor=%COMMANDER_PATH%\Utils\AkelPad\AkelPad_%OSARCH%.exe | и в F4Menu и где бы то ещё ни было. Но я лично предпочёл 32 нигде не писать.
А упомянутый в стартовом посте подход с разбивкой вариантов программы на папки давно утерял актуальность. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Sep 18, 2015 12:54 Post subject: |
|
|
Flasher
AutoRun работает только на WinNT - Win2000 и выше - если верить документации.
Flasher wrote: | А упомянутый в стартовом посте подход с разбивкой вариантов программы на папки давно утерял актуальность. |
С чего вдруг? Далеко не для всех программ возможно объединить обе разрядности в одной папке.
Mellomann
Не уверен, что можно подружить х86+х64 и Win9x. Как мне кажется, имеет смысл подружить х86 и х64 с помощью внутренней переменной и добавить батник, определяющий, что ОС Win9x, и запускающий ТСх86 с ключом /i и wincmd9x.ini.
Вместо батника, наверное, можно использовать AutoIt 3.2.12.1, VBScript не прокатит, предполагаю, - для определения ОС обычно используется WMI. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Fri Sep 18, 2015 14:04 Post subject: |
|
|
Если принять во внимание юникодность Autorun, то да, только в Windows NT...
Предлагаю для некро-систем бросить в папку тотала батник, который будет ставить переменные, которые должны быть установлены Autorun-ом, и потом запускать тотал - будет совместимость с Windows 9x. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Sep 18, 2015 19:51 Post subject: |
|
|
Skif_off wrote: | AutoRun работает только на WinNT - Win2000 и выше - если верить документации. | Даже если так, утверждения по списку шли до "Да и основной вопрос ...".
Skif_off wrote: | Далеко не для всех программ возможно объединить обе разрядности в одной папке. | Согласен. Хотя сути решения это не меняет.
Skif_off wrote: | VBScript не прокатит, предполагаю, - для определения ОС обычно используется WMI. | Насчёт прокатит или нет на Win9x ответить не возьмусь, а вот про "обычно" - неправда. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Fri Sep 18, 2015 23:05 Post subject: |
|
|
Flasher wrote: | а вот про "обычно" - неправда. |
От столь искушённого в VBScript можно было бы и поподробнее Сколько видел примеров - все с использованием WMI, если память не подводит, но особо не интересовался, т.к. меня не устраивают решения, не работающие в WinPE.
По идее можно читать в реестре, правда, навскидку не вспомню, где. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Sep 19, 2015 00:17 Post subject: |
|
|
Skif_off
Меня тоже память не особо подводит. Если это и имеет смысл обсудить, то не думаю, что здесь. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Sun Sep 20, 2015 00:52 Post subject: |
|
|
Quote: | подход с разбивкой вариантов программы на папки давно утерял актуальность | Бред.
Quote: | добавить батник, определяющий, что ОС Win9x, и запускающий ТСх86 с ключом /i и wincmd9x.ini | /i требует полного абсолютного пути к ini файлу, иначе не подхватывается. Если б не эта проблема - проблемы бы не было.
Quote: | батник, который будет ставить переменные | Опять 25...
Не вариант, заблокировано групповыми политиками.
Эх.... Всё - тлен. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 20, 2015 01:23 Post subject: |
|
|
Не бред, если понимаешь о чём речь и с чьей стороны разбивка. Читаем внимательно приведённые топики.
Mellomann wrote: | Если б не эта проблема | %CD% в 9x нет разве?
Mellomann wrote: | Не вариант, заблокировано групповыми политиками. | Разблокируй. Там можно что угодно заблокировать, в т.ч. запуск Тотала. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
(Separately) Posted: Sun Sep 20, 2015 02:21 Post subject: |
|
|
Mellomann wrote: | /i требует полного абсолютного пути к ini файлу, иначе не подхватывается. Если б не эта проблема - проблемы бы не было. |
???
Раз требует - передайте
cmd:
Code: | start %~dp0\TOTALCMD.EXE /i=%~dp0\wincmd9x.ini |
VBS:
Code: | Set WshShell = CreateObject("WScript.Shell")
WshShell.Run(WshShell.CurrentDirectory & "\TOTALCMD.EXE /i=" & WshShell.CurrentDirectory & "\wincmd9x.ini") |
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 20, 2015 02:36 Post subject: |
|
|
Skif_off, в путях кавычек не хватает. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Skif_off
Joined: 28 Nov 2012 Posts: 1244
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 20, 2015 03:32 Post subject: |
|
|
Skif_off
Я имел в виду не только vbs, но и батник, в котором, кстати, start не нужен.
Во всех случаях нужен как минимум ключ /N. На vbs скобки в Run нужны только для кода выхода.
 Hidden text Не знаю, что понимать под "бодаться", но вот то, что в js не Create, а new ActiveX тебе, думаю, должно быть известно.  _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
|