View previous topic :: View next topic |
Author |
Message |
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Wed Aug 29, 2018 19:31 Post subject: |
|
|
Flasher wrote: | Я имел в виду драйверы трёх программ. |
Понятно теперь.
Flasher wrote: | Почему скрипт-то, если их 3? Я же пишу, что не обещал объединять. |
Я написал про один скрипт, потому что думал что ты пока работаешь над скриптом для wincdemu. Не хотел напрягать тебя, и писать про несколько скриптов сразу, зная детали по ЛС.
Объединять конечно не надо. А то каша получится. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 29, 2018 19:45 Post subject: |
|
|
Iori wrote: | Я написал про один скрипт, потому что думал что ты пока работаешь над скриптом для wincdemu. | Ну, вообще я начал с OSFMount, сделал его сразу. А для wincdemu из-за известной причины перенёс. Потом ты расказал про третий вариант. Выходит, надо всё вместе выкладывать. Не по отдельности же.
Iori wrote: | зная детали по ЛС. | Это уже в прошлом. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Wed Aug 29, 2018 19:48 Post subject: |
|
|
Flasher
А как ты решил известную проблему? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 29, 2018 19:49 Post subject: |
|
|
Iori
Перезапустил комп. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Wed Aug 29, 2018 20:16 Post subject: |
|
|
Flasher wrote: | Это уже в прошлом. |
Это радует
Flasher wrote: | Выходит, надо всё вместе выкладывать. Не по отдельности же. |
Понятно. На данный момент, Imgdrive можно сделать по аналогии wincdemu, ну или подождать пока автор исправит местоположение драйверов.
Flasher wrote: | Перезапустил комп. |
Я вижу ты в хорошем настроении |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Sep 01, 2018 13:28 Post subject: |
|
|
Iori wrote: | Imgdrive можно сделать по аналогии wincdemu | Мда. Гадит этот зверь в реестр не по-детски. 76 новых разделов, 171 новый параметр, 25 изменений в существующих. При удалении же драйвера удаляются только 26 разделов, 67 параметров, изменяется 35 параметров и добавляется 4. Вот тебе и "Portable"...
Я таким точно не буду пользоватся. Может, ну его?
Я вообще думаю пока выложить с OSFMount, чтобы ты концепцию прочувствовал, а потом по мере тестов Emu туда же воткну.
P.S.: Пардон за "скоро", на нужной машине без инета был. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Sep 02, 2018 00:09 Post subject: |
|
|
Flasher wrote: | Мда. Гадит этот зверь в реестр не по-детски. 76 новых разделов, 171 новый параметр, 25 изменений в существующих. При удалении же драйвера удаляются только 26 разделов, 67 параметров, изменяется 35 параметров и добавляется 4. Вот тебе и "Portable"... |
Не думал что гадит так мощно. Предполагал что создаёт похожую ветку в реестре как и wincd.
Flasher wrote: | Я таким точно не буду пользоватся. Может, ну его? |
Я согласен. На данный момент писать скрипт нет смысла, но в будущем это может измениться. Конечно с твоим согласием.
Если можешь, выложи под кат те ветки реестра которые остались после деинсталляции драйвера. Я напишу разработчику.
В данном состояние, программа не кнопки не скрипта не заслуживает.
Но у программы есть несколько преимуществ по сравнению с wincdemu.
Например, она постоянно развивается. Нет браков в последний десятке как у wincd и конечно работает из под WinPe. А!, и вроде поддерживает больше форматов образов.
Flasher wrote: | Я вообще думаю пока выложить с OSFMount, чтобы ты концепцию прочувствовал, а потом по мере тестов Emu туда же воткну. |
Я думал что скрипт для emu будет отдельным. То есть как раньше, две программы два скрипта. Не будет ли процесс брать дольше если один скрипт будет работать с двумя программами сразу.
Конечно выкладывай , но проверить сразу же, скорее всего не смогу. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 02, 2018 00:42 Post subject: |
|
|
Iori wrote: | Если можешь, выложи под кат те ветки реестра которые остались после деинсталляции драйвера. | Reg-отчёты.
Iori wrote: | и конечно работает из под WinPe | А ты уверен, что это проблема проги, а не скрипта?
Iori wrote: | и вроде поддерживает больше форматов образов. | Что-то не заметил. То же самое, только ISZ вместо IMG. У обеих вдвое меньше, чем у OSFMount.
Iori wrote: | Я думал что скрипт для emu будет отдельным. То есть как раньше, две программы два скрипта. | В этом плане ничего не поменяется. Туда же = в тот же пост, как и на 4 стр.
Вытащи песочницей отсюда три файла (com/exe/sys) и в ЛС скинь, пож-та. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Sep 02, 2018 01:45 Post subject: |
|
|
Flasher wrote: | Reg-отчёты. |
Спасибо. Как в снимок OSFmount затесался?
Flasher wrote: | А ты уверен, что это проблема проги, а не скрипта? | Да. На WinPe же нет WMI.
Flasher wrote: | Что-то не заметил. То же самое, только ISZ вместо IMG. У обеих вдвое меньше, чем у OSFMount. |
Сказал что больше из за .CUE - Cue sheets files of APE/FLAC/M4A/TTA/WAV/WV/BIN, конечно ерунда кроме BIN. Программа OSFmount более предназначена для образов хард дисков и флопиков, а wincd emu более заточена под образы дисков от приводов. Oни дополняют друг друга.
Flasher wrote: | Вытащи песочницей отсюда три файла (com/exe/sys) и в ЛС скинь, пож-та. |
ОК
PS: Почему такая старая версия? На дворе уже v2.0.1001, 21 Mar 2018
PS2: Кстати, я уже давно её использую с твоим скриптом. Там подписанный драйвер для десятки. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 02, 2018 02:23 Post subject: |
|
|
Iori wrote: | Спасибо. Как в снимок OSFmount затесался? | Не знаю, по какому принципу цепляет другой драйвер при деинсталляции. Снимок вроде делал сразу до и после неё. Надо бы ещё разок.
Но тут в любом случае важно, не столько то, что происходит после удаления, а то, сколько мусора идёт в реестр при установке, а это уже второго снимка не касается.
Iori wrote: | Да. На WinPe же нет WMI. | Два противоречащих друг другу утверждения. Раз нет WMI, значит, это проблема скрипта. Прога-то при чём?
Iori wrote: | Сказал что больше из за .CUE | Который в Emu тоже есть. В связке с BIN, правда, не тестировал.
Iori wrote: | Почему такая старая версия? На дворе уже v2.0.1001, 21 Mar 2018 | Потому что: v2.0.1000, 08 Mar 2018 wrote: | Compiled with Visual Studio 2017 and Driver Built using WinDDK 10. Consequence of this is that the minimum OS required is now Windows 7 SP1 and we are longer supporting older operating systems XP & Vista. |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Sep 02, 2018 02:49 Post subject: |
|
|
Flasher wrote: | Снимок вроде делал сразу до и после неё. Надо бы ещё разок. |
Если тебя не затруднит.
Flasher wrote: | Но тут в любом случае важно, не столько то, что происходит после удаления, а то, сколько мусора идёт в реестр при установке, а это уже второго снимка не касается. |
Я согласен, но здесь надо убедить разработчика на все 100%. Увидев другой монтировщик или ветки которые не относятся к его программе, он зацепится за это и менять ничего не станет.
Flasher wrote: | Два противоречащих друг другу утверждения. Раз нет WMI, значит, это проблема скрипта. Прога-то при чём? |
Ну может однажды я тебя не так понял. Я думал программа то-же может зависеть от WMI.
Я вроде точно запускал portable версию под WinPE без кнопок и скриптов, и прога не работала.
Flasher wrote: | Потому что: |
Понятно. Ты хочешь как можно универсальнее сделать. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Sun Sep 02, 2018 15:04 Post subject: |
|
|
Flasher wrote: | Потому что: |
На руборде пишут, что последняя рабочая версия под ХР - 1.5.1015, а в 1018 не монтируются образы (хотя и запускается). Сам я не проверял. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 02, 2018 15:52 Post subject: |
|
|
Iori wrote: | Я согласен, но здесь надо убедить разработчика на все 100% | Вообще автор сам должен знать, что пишется в реестр. Если не всё, то лучше ему взять RegShot и сделать снимки. На своей (а лучше на чистой) системе это проще контролировать.
Iori wrote: | Я вроде точно запускал portable версию под WinPE без кнопок и скриптов, и прога не работала. | Так вроде или точно? Проверь ещё разок.
LonerD wrote: | Сам я не проверял. | Лучше кому-то всё же проверить. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 02, 2018 20:48 Post subject: |
|
|
OSFMount.vbs Code: | '•••••••••••••••••••••••••••••••• VBS •••••••••••••••••••••••••••••••••
' Назначение: Смонтировать выбранные образы дисков на виртуальные диски
' Отсоединить все подключённые программой виртуальные диски
'
' Поддерживаемые форматы:
' 00n, AFD, AFF, AFM, BIN, DD, E01, IMG, ISO, NRG, S01, SDI, VHD, VMDK
'
' Условия:
' 1) В папке программы должны находиться папки OSFMount\ и OSFMount64\,
' в каждой из которых файлы: OSFMount.com, OSFMount.exe, OSFMount.sys.
' 2) Наличие "%COMMANDER_EXE%" в поле "Команда:" после пути к скрипту.
'
' Параметры: 2) <отмонтировать всё/монтировать/переподключить: 0/1/2>
' 3) <свободная буква c начала/конца: 0/1>
' 4) <список путей к образам через пробел>
' Ключи:
' /n — не сообщать о демонтировании дисков (2-й параметр = 0)
' /r — переподключать по именному счётчику (2-й параметр = 1)
' /o:<1/2> — открыть подключённые диски в активной/пассивной панели
' /p:%P/%T — только при наличии /o: "%P" при /o:1 или "%T" при /o:2
' Примеры: 0 | 0 /n | 2 0 %V | 1 1 %P%S /r /o:2 /p:"%T"
'
Option Explicit
'•••••••••••• Путь к папке с OSFMount относительно корня TC •••••••••••
Const RPath = "Utils\OSFMount"
'••••••••••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••
Dim A, C, P, P1, P2, Title, FSO, S1, WSS, SF, DN, OCom, BN, OP, F, S, S2, Dr, M
Set A = WSH.Arguments.UnNamed : C = A.Count : If C = 0 Then Msg(1)
P = "a" : P1 = "й" : If C > 5 Then P = "ов" : P1 = "е" : P2 = "и"
Title = " Монтирование образ" & P & " на виртуальны" & P1 & " диск" & P2 & " "
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(A(0)) Then Msg(2) Else _
If Left(CreateObject("Shell.Application").NameSpace(0).ParseName(A(0))._
ExtendedProperty("FileDescription"), 15) <> "Total Commander" Then Msg(2)
If A(1) = 1 And C < 4 Then Msg(3)
If A(1) = 0 Then Title = " Отключение годных виртуальных дисков "
S1 = "е" : Set WSS = CreateObject("WScript.Shell")
If WSS.Environment("System")("PROCESSOR_ARCHITECTURE") <> "x86" Then SF = 64
OP = FSO.BuildPath(FSO.GetParentFolderName(A(0)), RPath) & "\OSFMount" & SF & "\"
DN = "OSFMount": OCom = OP & DN & ".com": If C > 2 Then BN = FSO.GetBaseName(A(3))
For Each F in Array(OP & DN & ".exe", OCom, OP & DN & ".sys")
If Not FSO.FileExists(F) Then S = S & vbCr & F
Next : If InStrRev(S, vbCr) > 1 Then S1 = "ю" : S2 = "ы:"
P = WSH.Arguments.Named("o") : If Not IsEmpty(S) Then Msg(5)
If A(1) = 0 Then
For Each Dr In FSO.Drives
If WSS.Run("""" & OCom & """ -l -m " & Dr, 0, 1) = 0 Then _
WSS.Run """" & OCom & """ -D -m " & Dr, 0, 1
Next : If Not WSH.Arguments.Named.Exists("n") Then _
WSS.Popup "Виртуальные диски отключены!", 2, Title
ElseIf A(1) = 1 Then
Dim Check : If C = 4 And WSH.Arguments.Named.Exists("r") Then Rewire Check
If IsEmpty(Check) Then
Dim D, i : D = "DEFGHIJKLMNOPQRSTUVWXYZ"
For Each Dr In FSO.Drives : D = Replace(D, Dr.DriveLetter, "") : Next
For i = 3 To C - 1
If Not IsImage(A(i)) Then
Msg(4)
Else
If A(2) Then Dr = Right(D, 1) Else Dr = Left(D, 1)
WSS.Run """" & OCom & """ -a -t file -f """ & A(i) & """ -m " & Dr & ":", 0, 1
Select Case P
Case Empty If A(2) Then S = Dr & " " & S Else S = S & " " & Dr & ":"
Case 1 OpenDrive Dr & ":", "L" : Case 2 OpenDrive Dr & ":", "R"
End Select
D = Replace(D, Dr, "")
End If
Next
If P = Empty Then
If C > 4 Then P = "ы"
WSS.Popup "Выбранны" & P1 & " образ" & P & " смонтирован" &_
P & " на диск" & P2 & ": " & Trim(S), 2, Title
End If
End If
ElseIf A(1) = 2 And C = 4 And IsImage(A(3)) And Not (Len(BN) = 1 And Not IsNumeric(BN)) Then Rewire 1
End If : WSH.Quit
Function IsImage(Name)
IsImage = Eval(InStr("|00N|AFD|AFF|AFM|BIN|DD|E01|IMG|ISO|NRG|S01|SDI|VHD|VMDK|",_
"|" & UCase(FSO.GetExtensionName(Name)) & "|") > 0)
End Function
Sub Rewire(Mess)
Dim Ptrn, RExp, BNm, BNx, Drives, TF, TempFile, NN, Exc1, Exc2, Chk, Sep1, Sep2, Sym1, Sym2
Set RExp = New RegExp : Ptrn = "([ _.–—\-\t\u2012\u2015\u2212]*)([a-z]|\d+)$"
RExp.Pattern = Ptrn : BNm = RExp.Replace(BN, "") : RExp.Pattern = "([.^[\]()\-$])"
RExp.Global = True : BNx = RExp.Replace(BNm, "\$1") : RExp.Pattern = "^" & BNx & Ptrn
For Each Dr in FSO.Drives
If Dr.DriveType > 3 Then Drives = Dr & " " & Drives
Next
TF = FSO.GetSpecialFolder(2) & "\" & FSO.GetTempName
For Each Dr in Split(RTrim(Drives))
WSS.Run "%ComSpec% /u /c cd /d " &OP& "&for /f ""delims="" %# in ('OSFMount.com -l -m " &Dr& "^|findstr " &_
"/rec:""\\" & BNx & ".*\." & FSO.GetExtensionName(A(3)) & """') do echo " & Dr & "^|%#>>""" & TF & """", 0, 1
Next
If IsEmpty(Mess) Then If Not FSO.FileExists(TF) Then Exit Sub
If FSO.GetFile(TF).Size = 0 Then If Mess Then Msg(6) Else Exit Sub
Set TempFile = FSO.OpenTextFile(TF,,,-1) : Set Exc2 = RExp.Execute(BN)
If Exc2.Count Then Sep2 = Exc2(0).Submatches(0) : Sym2 = Exc2(0).Submatches(1)
Do : F = TempFile.Readline
If F <> "" Then
If Mid(F, 20) = A(3) Then Mess = 0 : Exit Do
Dr = Left(F, 2) : NN = FSO.GetBaseName(F) : Set Exc1 = RExp.Execute(NN)
If Exc1.Count Then Sep1 = Exc1(0).Submatches(0) : Sym1 = Exc1(0).Submatches(1)
If NN = BN Then Mess = 0 : Exit Sub Else If InStr(NN, BNm) = 1 Then _
If Not ((Sep1 = "" And Sym1 <> "") And (Sep2 <> "" And Sym2 <> "")) Then _
If (Sep1 = "" And Len(Sep2) > 0) Or Sep1 = Sep2 Then If Sym1 = "" Or Sym1 <> Sym2 Then _
If NumOrSym(Sym1, Sym2) Then _
WSS.Run """" & OCom & """ -D -m " & Dr, 0, 1 : Chk = 1 :_
WSS.Run """" & OCom & """ -a -t file -f """ & A(3) & """ -m " & Dr, 0, 1 : Exit Do
End If
Loop Until TempFile.AtEndOfStream : TempFile.Close : FSO.DeleteFile TF, 1
If Chk Then Mess = 0 Else If Mess Then Msg(6) Else Exit Sub
Select Case P
Case Empty WSS.Popup "Выбранный образ смонтирован на диск " & Dr & " !", 2, Title
Case 1 OpenDrive Dr, "L" : Case 2 OpenDrive Dr, "R"
End Select
End Sub
Function NumOrSym(X, Y)
Dim IN1, IN2, Alp : IN1 = IsNumeric(CStr(X)) : IN2 = IsNumeric(CStr(Y))
If IN1 And IN2 Then
If X + 1 <> CInt(Y) Then Exit Function
WIth New RegExp
.Pattern = "^0+" : If .Test(X) Or .Test(Y) Then _
If Not ((X = "9" Or X = "09") And Y = "10") Then _
If Len(X) <> Len(Y) Then Exit Function
End With : NumOrSym = True
ElseIf Not IN1 And Not IN2 Then
If Len(X) > 1 Or Len(Y) > 1 Then Exit Function
If X = "" And Y = "a" Then NumOrSym = True : Exit Function
Alp = "abcdefghiyklmnopqrstuvwxyz"
If Mid(Alp, InStr(Alp, X) + 1, 1) = Y Then NumOrSym = True
ElseIf X = "" And CInt(Y) = "1" Then NumOrSym = True
End If
End Function
Sub OpenDrive(Drive, Pl)
Dim T : If StrComp(FSO.GetDriveName(WSH.Arguments.Named("p")), Drive, 1) <> 0 Then T = " /T"
If FSO.GetDrive(Drive).IsReady Then WSS.Run """" & A(0) & """ /O /S" & T & " /" & Pl & "=" & Drive
End Sub
Sub Msg(D)
Select Case D
Case 1 M = "Укажите требуемые параметры!"
Case 2 M = "Укажите ""%COMMANDER_EXE%"""_
& " в поле Команда: после пути к скрипту!"
Case 3 M = "Укажите не менее 4-х параметров!"
Case 4 M = "Данный тип файла не поддерживается!"
Case 5 M = "Отсутству" & S1 & "т файл" & S2 & S
Case 6 M = "Имя файла не подходит для перемонтажа!"
End Select : MsgBox M, 4144, Title : WScript.Quit
End Sub |
autorun.cfg wrote: | # Команды при завершении процесса ТС:
Pragma AutorunFinalizeSection
If %AUTORUN_ISADMIN% = 1 Then
ShellExec /WAIT '%COMMANDER_PATH%\Scripts\OSFMount.vbs' '"%COMMANDER_EXE%" 0 /n'
RegDelete /K HKLM\SYSTEM\ControlSet003\Enum\Root\LEGACY_OSFMOUNT
RegDelete /K HKLM\CurrentControlSet\Enum\Root\LEGACY_OSFMOUNT
RegDelete /K HKLM\SYSTEM\CurrentControlSet\Services\OSFMount
RegDelete /K HKLM\SYSTEM\Setup\FirstBoot\Services\OSFMount
RegDelete /K HKLM\CurrentControlSet\services\OSFMount
RegDelete /K HKLM\ControlSet003\services\OSFMount
# Если для драйвера будет открыт дескриптор др. процессом, то след. команда только пометит драйвер на удаление:
#ShellExec /SW_HIDE %comspec% '/c sc stop OSFMount && sc delete OSFMount'
EndIf |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sun Sep 09, 2018 00:46; edited 2 times in total |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Sep 02, 2018 23:51 Post subject: |
|
|
Flasher wrote: | Так вроде или точно? Проверь ещё разок. |
OK. Проверил сегодня на WinPE 10 x64. Результат такой.
Wincdemu запускается и инсталлирует драйвер. При монтировке образа, чуть тормозит и не монтирует на свободную букву. Якобы видно что образ монтирован в программе, но не на букву. Размонтировка проходит быстро. Драйвер не сносится. Пишет Access Denied. В итоге WinPE нельзя нормальным путём перегрузить.
С ImgDrive всё нормально. Работает так-же как и в обычной винде.
Спасибо за новый скрипт к OSFmount .
Протестирую когда вернусь домой.
Я так понимаю что переподключить и монтировать в одну кнопку не получится. После наших разговоров, я думал что скрипт будет смотреть на название второго и так далее образов и перемонтировать если имена одинаковые по счётчику. |
|
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
|