Страница 19 из 42
Добавлено: Вт окт 26, 2010 13:12
Flasher
Batya
Спасибо за подключение! Пока криво работает, прыгает на последний диск, там и остаётся.
Я, кстати, из функции CheсkDrive убрал бы " And D.IsReady", а то на прошлых этапах он тормозил процесс конкретно.
Добавлено: Вт окт 26, 2010 13:45
Batya
Flasher писал(а):Пока криво работает, прыгает на последний диск, там и остаётся.
А есть ещё диски, удовлетворяющие условиям?
И ты не забыл очистить в кнопке поле "Путь запуска"?
У меня нет нескольких задействованных съемных дисков. Проверял, удалив из условий " And (D.DriveType = 1)". Работало нормально.
Flasher писал(а):Я, кстати, из функции CheсkDrive убрал бы " And D.IsReady", а то на прошлых этапах он тормозил процесс конкретно.
Всё в твоих руках
Добавил, чтобы TC не пытался перейти на пустой оптический привод и на пустой диск картридера.
А сейчас, кстати, тормозит?
Добавлено: Вт окт 26, 2010 14:37
Flasher
Batya писал(а):И ты не забыл очистить в кнопке поле "Путь запуска"?

Угу, теперь заработало как надо.
Batya писал(а):Добавил, чтобы TC не пытался перейти на пустой оптический привод и на пустой диск картридера.
Я это понял, тогда оставляй для других, у меня картридеры внешние, с этим проблем нет. А с оптическими приводами, как и с сетевыми, так и с виртуальными вообще не должно быть проблем, мы же в условии задаём тип Removable(D.DriveType = 1).
Batya писал(а):А сейчас, кстати, тормозит?
Да особо уже не заметно.
Предлагаю универсализировать скрипт за счёт смены D.DriveType = 1 на D.DriveType = WScript.Arguments(0), в комментарии добавить описание параметров:
' 1 - тома сменных накопителей;
' 2 - тома жёстких дисков;
' 3 - сетевые диски;
' 4 - оптические приводы.
Новое название: Переход на диски в зависимости от заданного типа и переключение между ними.
Добавлено: Вт окт 26, 2010 16:14
Batya
Flasher писал(а):Предлагаю универсализировать скрипт
Сделал.
Добавлено: Вт окт 26, 2010 16:18
Flasher
Batya
Спасибо, удобная вещь получилась.
Забыл дописать
' 5 - виртуальные диски.
У меня тут ещё вчера мысль промелькнула - осуществлять переход в обратном направлении. С этим сложнее?
Добавлено: Вт окт 26, 2010 16:55
Batya
Flasher писал(а):Забыл дописать ' 5 - виртуальные диски.
Сделал.
Flasher писал(а):осуществлять переход в обратном направлении. С этим сложнее?
Код: Выделить всё
'========================================================
' Последовательное обратное переключение между дисками
' Параметры скрипта:
' [{Тип дисков}]
' Здесь {Тип дисков} может принимать значения:
' 1 - тома сменных накопителей;
' 2 - тома жёстких дисков;
' 3 - сетевые диски;
' 4 - оптические приводы;
' 5 - виртуальные диски.
' Авторcтво: Flasher, Batya
'========================================================
Option Explicit
'================ Изменяемые параметры ==================
Const DefaultDriveType = 1 'Тип дисков по умолчанию
'========================================================
Dim FSO, WSH, D, Drive, NewDrive, DriveType
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
DriveType = DefaultDriveType
If WScript.Arguments.Count > 0 Then _
DriveType = CInt(WScript.Arguments(0))
Drive = UCase(FSO.GetDriveName(WSH.CurrentDirectory))
NewDrive = ""
For Each D In FSO.Drives
If (UCase(D.Path) = Drive) Then
If NewDrive <> "" Then _
GoToDrive(NewDrive):Quit
Else
If CheckDrive Then _
NewDrive = D.Path & ""
End If
Next
'Если текущий диск первый, перейдём на последний диск
If NewDrive <> "" Then _
GoToDrive(NewDrive):Quit
'Подходящих по условиям дисков нет. Выходим
Quit
Sub Quit
Set D = Nothing
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0
End Sub
Function CheckDrive
CheckDrive = ((D <> "A:") And D.IsReady And (D.DriveType = DriveType) And (UCase(D.Path) <> Drive))
End Function
Sub GoToDrive(pDrive)
Dim TCPath
TCPath = WSH.ExpandEnvironmentStrings("%Commander_Path%")
WSH.Run """" & TCPath & "\totalcmd.exe"" /S /O /L=" & pDrive, 1, True
End Sub
Добавлено: Вт окт 26, 2010 17:05
Flasher
Быстро.

Даже в серёдке слегка покороче получился. Отлично, молоток!
Добавлено: вот тут
D.IsReady пришлось убрать, тормозит сильно, вместо 3-5 дс все 6-7 сс.

С виртуальными дисками я поспешил, видимо FSO.Drives может читать только RAM-диски, смонтированные штатными средствами. Пробовал разные цеплялки от плагина VirtualDisk до Alcohol 120.
Добавлено: Вт окт 26, 2010 23:06
Serge Yolkin
Может, плохо искал, но все-таки: нет ли скомпилированного скрипта, позволяющего выполнить несколько (надо до 10) cm_/em_ команд из строки вида
?
Добавлено: Вт окт 26, 2010 23:51
Rodny
Добавлено: Ср окт 27, 2010 00:28
Flasher
Rodny
Правильней не продублировать, а процитировать себя же (
1,
2).
Ну и
своё воткну на всякий.
Serge Yolkin
TCFS2 ещё не пробовал? Очень рекомендую.

Добавлено: Ср окт 27, 2010 10:42
Serge Yolkin
Rodny
Flasher
Спасибо.
Добавлено: Ср окт 27, 2010 12:06
Serge Yolkin
TCMC был снесен Symantec'ом

Вряд ли вирус, скорее у симантика паранойя. TCFS2 - как швейцарский ножичек на все случаи жизни. Мне показался избыточным. Пока разбираюсь с TCCP. em_ выполнить не удалось, пришлось через UserMenuNN дублировать команды.
Добавлено: Ср окт 27, 2010 12:23
MVV
Serge Yolkin писал(а):TCMC был снесен Symantec'ом

Вряд ли вирус, скорее у симантика паранойя.
Проблема в EXE-пакере. Большинство антивирусов их не переваривают. Банально возьми чистый экзешник, проверь на вирустотале, потом его же запакуй опенсорсным UPX (который, кстати, поставляется с анпакером) и проверь на том же вирустотале - значительно возрастет подозрительность файла.
TCFS2 - как швейцарский ножичек на все случаи жизни. Мне показался избыточным.
Дык предназначение TCFS2 - не просто уметь посылать команды окну тотала. Цель была - создать инструментарий для перевода тотала в полноэкранный режим, причем максимально гибкого. Поэтому чтение/запись тоталовского INI, посыл cm-команд и управление окном были необходимы.
em_ выполнить не удалось
А em-команды посылаются принципиально иначе, чем cm-команды. Если cm-команда посылается стандартным сообщением с её номером, то имя em-команды посылается в сообщении WM_COPYDATA в текстовом виде.
Добавлено: Ср окт 27, 2010 12:24
Avada
Serge Yolkin писал(а):TCMC был снесен Symantec'ом Вряд ли вирус, скорее у симантика паранойя.
Известная проблема (разумеется, из-за упаковщика), неоднократно обсуждалась, в том числе на оффоруме. См. мой коммент, например,
здесь. Выкладывались разные варианты, на которые орало разное количество антивирусов. Если надо, вечером могу поискать на домашнем компе наименее проблемный вариант.
Добавлено: Ср окт 27, 2010 13:10
Serge Yolkin
MVVСпасибо за разъяснение.