Работа с файлами-образами и виртуальными дисками из ТС

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher писал(а):Тогда это явно требует разжёвки. О каких тогда хвостах и регистре речь?
[cut] Я наверно плохо пошутил :oops: [/cut]
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Flasher писал(а):WinCDEmu.vbs
А возможно как-то реализовать запуск скрипта от админа? Пробовал *, sudo, AdvancedRun, niradm* - всё без толку, либо не понимает %COMMANDER_PATH% (* или sudo), либо всякие левые ошибки выдаёт (AdvancedRun и niradm, с niradm ещё обрезается один аргумент*, либо ошибка).
*[cut]niradm.exe моя самоделка для запуска nircmd c адм. правами, если они требуются, пример рабочей кнопки:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\niradm.exe"
exec2 show "~$folder.nircmd$\Bin\RegWork" "~$folder.nircmd$\Bin\RegWork\RegistryWorkshop.exe" /g "~$clipboard$"
%COMMANDER_PATH%\Bin\RegWork\RegistryWorkshop.exe
Открыть ключ реестра из буфера обмена в RegWorkshop

0
-1
А вот со скриптом что-то не хочет работать, если так:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\niradm.exe"
exec2 show "~$folder.nircmd$\Scripts" wscript "~$folder.nircmd$\Scripts\WinCDEmu.vbs" 1 0 1 %V
WCMICONFLAT.DLL,342
WinCDEmu: смонтировать образ под курсором


-1
[s]то выдаёт: http://i7.5cm.ru/i/doBy.png[/s] Нет, это у меня была старая версия niradm, которая малёхо кривая (в сборках его обновил, а вот в своей личной сборке забыл :D )
С нормальным niradm такое же поведение, как с */sudo.
А если так:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\niradm.exe"
exec2 show "~$folder.nircmd$\Scripts" wscript "~$folder.nircmd$\Scripts\WinCDEmu.vbs" 1 0 1 "%V"
WCMICONFLAT.DLL,342
WinCDEmu: смонтировать образ под курсором


-1
то та же ошибка, как с * или sudo. :?
p.s. Всё работает, во всех вариантах (насколько уже понял, niradm, sudo, AdvancedRun ничем не помогут, поэтому проще юзать звёздочку*), если в скрипте указать абсолютный путь к папке WinCDEmu, но это не вариант, по понятным причинам.

* Хотя не совсем, niradm я делал как раз из-за того, что на XP звёздочка или sudo будут выдавать ненужное окно с запросом прав, а niradm - нет. :) [/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

addhaloka
Можно положить скрипт в папку WinCDEmu и

Код: Выделить всё

Const Path = "%COMMANDER_PATH%\Utils\WinCDEmu"
заменить на:

Код: Выделить всё

Dim Path : Path = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\") - 1)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Flasher
Спасибо! Так всё прекрасно работает и в 8.1 x64 c UAC, и в XP SP3.

p.s. Заодно повнимательней проанализировав код niradm и подобного же лаунчера без адм. прав для nircmd, убедился, что там всё было криво :D, теперь вроде всё правильно сделал.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

addhaloka
Пож-та. Есть, кстати, ещё вариант с %C_P% в "Команда:" (тогда придётся доп. параметр ввести).
addhaloka писал(а):на XP звёздочка или sudo будут выдавать ненужное окно с запросом прав
Тут приводил решение.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Flasher писал(а):Тут приводил решение.
Спасибо, возможно пригодится. Ещё один (наверно костыльный) вариант для скриптов:[cut]

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Plugins\EXE\TCScript\wscriptadm.exe" "%COMMANDER_PATH%\Bin\WinCDEmu\WinCDEmu.vbs"
1 0 1 %V
WCMICONFLAT.DLL,342
WinCDEmu: смонтировать образ под курсором


-1
wscriptadm.exe - это скопированный с таким именем wscript.exe из Переносной Script Helper ActiveX for TC by Volniy :: Total Commander, вместе с соотв. wscriptadm.exe.manifest (также полученным копированием из wscript.exe.manifest), в который добавлено:

Код: Выделить всё

...
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
      	<requestedPrivileges>
			<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
      	</requestedPrivileges>
      </security>
  </trustInfo>
</assembly>
[/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

addhaloka писал(а):Спасибо, возможно пригодится.
Так %ADM% всяко короче и проще пути к niradm с параметрами.
[cut]Не понял, зачем было с TCKB копировать (тем более переименовывать)? Там же манифест с компонентами, которых тут нет.[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Flasher писал(а):Так %ADM% всяко короче и проще пути к niradm с параметрами.
Дык, niradm изначально делался как лаунчер для nircmd, запускающий нужный nircmd.exe 32/64 в зависимости от разрядности системы (например, если TC x32, а система x64, то nircmd в большинстве случаев лучше 64-х битный, а Autorun.wdx ориентируется на битность TC, а не системы, т. е. с TC x32 будет вызываться* nircmd x32, что зачастую нежелательно в Win x64). Т. е. не только для адм. запуска программ, а для всех возможностей nircmd, если нужны права. С autorun, конечно много чего крутить можно, но niradm для меня удобней.

* p.s. Хотя, наверно ошибаюсь - там есть %SYSINFO_OSARCH%, похоже как раз для этого. В справку иногда полезно заглядывать. :)

[cut]Скопировал - в смысле продублировал имевшиеся файлы под другими именами: http://i7.5cm.ru/i/JCpV.png[/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

addhaloka писал(а):а Autorun.wdx ориентируется на битность TC, а не системы
Какое отношение к проблеме имеет битность? В моём коде речь идёт исключительно о виндовых версиях.
В вопросах ориентации на битность ТС или системы также нет никаких припонов. Это выбор пользователя, а не плагина.
[cut]Какую ссылку оттуда не открою, всегда вижу фигу:
Изображение временно недоступно, не существует или было удалено.
[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

Flasher писал(а):Какое отношение к проблеме имеет битность? В моём коде речь идёт исключительно о виндовых версиях.
Ну, в смысле, niradm тем круче, что ещё доп. выбирает разрядность nircmd. :D

[cut]
Flasher писал(а):Какую ссылку оттуда не открою, всегда вижу фигу:
А отсюда? http://s1.bild.me/bilder/110417/5652860 ... 022900.png
Обычно всегда сюда картинки заливал, но кто-то написал, что bild.me ростелеком блокирует, попробовал 5cm.ru, но получается тоже не только лишь у всех доступен.[/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

addhaloka
Так в рамках ТС чем круче-то? nircmd в данном случае - это ещё одна лишняя составляющая, которая с %ADM% ничего общего иметь не будет. Да и выбор разрядности запускаемых приложений от неё никак не зависит.
[cut]Вот эта ссылка в порядке. Я так понимаю, что с данной добавкой в wscript-манифест компоненты перестают работать? Иначе не было бы смысла создавать отдельную группу.[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

[cut]Работать вроде ничего не перестаёт, но на системах с вкл. UAC будет вызывать неудобство, если TC запущен не от админа, поэтому лучше отдельно - обычный и с повышенными правами.
Хотя, думается, что это вообще не нужно - по сути ничем не отличается от запуска с */%ADM% и т. п. Это я сделал в попытках заставить работать пред. версию скрипта, а так вообще сложно представить, зачем это нужно. :) [/cut]
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Не могу понять почему, но у меня autorun не выполняет эти команды при выходe из ТС.

Код: Выделить всё

ShellExec /SW_HIDE /WAIT '%COMMANDER_PATH%\Utilities\WinCDemu\WinCDEmu.exe' /unmountall
ShellExec /SW_HIDE /WAIT '%COMMANDER_PATH%\Utilities\WinCDemu\WinCDEmu.exe' /uninstall
ShellExec /SW_HIDE reg 'delete HKLM\SYSTEM\CurrentControlSet\Services\BazisPortableCDBus /f'
Стоит последний командер и Win10 x64 (1803)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
А вообще какие-то команды выполняются после Pragma AutorunFinalizeSection?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher
Вроде нет. :?
Попробовал такую команду:

Код: Выделить всё

ProcessTerminate /W:3000 /TT /A PrKiller.exe PrKiller64.exe
Ты раньше советовал. Раньше работала, а теперь нет.

Может дело в новом ТС 9.20? У тебя работает?
Ответить