Script Request
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
А есть ещё диски, удовлетворяющие условиям?Flasher писал(а):Пока криво работает, прыгает на последний диск, там и остаётся.
И ты не забыл очистить в кнопке поле "Путь запуска"?
У меня нет нескольких задействованных съемных дисков. Проверял, удалив из условий " And (D.DriveType = 1)". Работало нормально.
Всё в твоих рукахFlasher писал(а):Я, кстати, из функции CheсkDrive убрал бы " And D.IsReady", а то на прошлых этапах он тормозил процесс конкретно.
Добавил, чтобы TC не пытался перейти на пустой оптический привод и на пустой диск картридера.
А сейчас, кстати, тормозит?
Нет, я не сплю. Я просто медленно моргаю.
Batya писал(а):И ты не забыл очистить в кнопке поле "Путь запуска"?
Я это понял, тогда оставляй для других, у меня картридеры внешние, с этим проблем нет. А с оптическими приводами, как и с сетевыми, так и с виртуальными вообще не должно быть проблем, мы же в условии задаём тип Removable(D.DriveType = 1).Batya писал(а):Добавил, чтобы TC не пытался перейти на пустой оптический привод и на пустой диск картридера.
Да особо уже не заметно.Batya писал(а):А сейчас, кстати, тормозит?
Предлагаю универсализировать скрипт за счёт смены D.DriveType = 1 на D.DriveType = WScript.Arguments(0), в комментарии добавить описание параметров:
' 1 - тома сменных накопителей;
' 2 - тома жёстких дисков;
' 3 - сетевые диски;
' 4 - оптические приводы.
Новое название: Переход на диски в зависимости от заданного типа и переключение между ними.
Сделал.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
Нет, я не сплю. Я просто медленно моргаю.
Быстро.
Даже в серёдке слегка покороче получился. Отлично, молоток! 
Добавлено: вот тут D.IsReady пришлось убрать, тормозит сильно, вместо 3-5 дс все 6-7 сс.
С виртуальными дисками я поспешил, видимо FSO.Drives может читать только RAM-диски, смонтированные штатными средствами. Пробовал разные цеплялки от плагина VirtualDisk до Alcohol 120.
Добавлено: вот тут D.IsReady пришлось убрать, тормозит сильно, вместо 3-5 дс все 6-7 сс.
С виртуальными дисками я поспешил, видимо FSO.Drives может читать только RAM-диски, смонтированные штатными средствами. Пробовал разные цеплялки от плагина VirtualDisk до Alcohol 120.
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
Может, плохо искал, но все-таки: нет ли скомпилированного скрипта, позволяющего выполнить несколько (надо до 10) cm_/em_ команд из строки вида?
Код: Выделить всё
script.exe cm_xxx cm_yyy em_zzz ... Serge Yolkin
TC Multiple Commands?
TC Multiple Commands?
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
Проблема в EXE-пакере. Большинство антивирусов их не переваривают. Банально возьми чистый экзешник, проверь на вирустотале, потом его же запакуй опенсорсным UPX (который, кстати, поставляется с анпакером) и проверь на том же вирустотале - значительно возрастет подозрительность файла.Serge Yolkin писал(а):TCMC был снесен Symantec'омВряд ли вирус, скорее у симантика паранойя.
Дык предназначение TCFS2 - не просто уметь посылать команды окну тотала. Цель была - создать инструментарий для перевода тотала в полноэкранный режим, причем максимально гибкого. Поэтому чтение/запись тоталовского INI, посыл cm-команд и управление окном были необходимы.TCFS2 - как швейцарский ножичек на все случаи жизни. Мне показался избыточным.
А em-команды посылаются принципиально иначе, чем cm-команды. Если cm-команда посылается стандартным сообщением с её номером, то имя em-команды посылается в сообщении WM_COPYDATA в текстовом виде.em_ выполнить не удалось
Известная проблема (разумеется, из-за упаковщика), неоднократно обсуждалась, в том числе на оффоруме. См. мой коммент, например, здесь. Выкладывались разные варианты, на которые орало разное количество антивирусов. Если надо, вечером могу поискать на домашнем компе наименее проблемный вариант.Serge Yolkin писал(а):TCMC был снесен Symantec'ом Вряд ли вирус, скорее у симантика паранойя.
Последний раз редактировалось Avada Пт июл 31, 2015 21:32, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12