| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Sun May 03, 2020 10:20    Post subject: Переход по указанному в буфере пути или ключу реестра | 
				     | 
			 
			
				
  | 
			 
			
				Flasher 
 
При вызове данного скрипта из TC64 получаю такую же ошибку. Вызов через %SystemRoot%\SysWOW64\wscript.exe не помогает. 
 
Версия wscript: 5.812.10240.16384 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Avada
 
  
  Joined: 01 Aug 2008 Posts: 10445 Location: Россия, Саратов
  | 
		
			
				  (Separately) Posted: Sun May 03, 2020 19:48    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
Предыдущее сообщение перенесено из этой темы в другой подфорум и выделено в самостоятельную тему, поскольку к плагинам не имеет никакого отношения. _________________ Даже самая богатая фантазия
 
Не представит себе наши безобразия. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Sun May 03, 2020 23:48    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
Тут требуется начинать с прочтения и выполнения предписаний памятки, закреплённой в текущем подфоруме.
 
Также вставьте сюда по Ctrl+V содержимое буфера после выполнения следующей команды из комстроки ТС/Win+R: 	  | Code: | 	 		  cmd /c (reg query HKLM\SOFTWARE\Classes\CLSID\{1C3B4210-F441-11CE-B9EA-00AA006B1A69}\InprocServer32\ /ve® query HKLM\SOFTWARE\Wow6432Node\Classes\CLSID\{1C3B4210-F441-11CE-B9EA-00AA006B1A69}\InprocServer32\ /ve)|clip  | 	 
  _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 20:12    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Flasher
 
В моём Windows [Version 10.0.19624.1000] нет таких GUID в реестре.
 
ТС x64 9.51
 
 	  | Code: | 	 		  
 
Windows Script Host
 
---------------------------
 
Сценарий:   C:\TCPU71\scripts\Переход по указанному в буфере обмена пути или ключу реестра.vbs
 
Строка:   12
 
Символ:   1
 
Ошибка:   Невозможно создание объекта контейнером ActiveX: 'GetObject'
 
Код:   800A01AD  | 	 
  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 20:20    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
Я не просил приводить тут же ошибку по ссылке. Просил совершенно другое. Где результат выполнения приведённой команды? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 20:37    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Flasher wrote: | 	 		  
 
Где результат выполнения приведённой команды? | 	  
 
Он пуст, так как такого класса нет в реестре. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 21:19    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
Мда. Тут пишут, что FM20.dll выпилили в 1803 апдейте. Как же мелкомягкие бесят...  
 
 
  Такой вариант пробуйте:  	  | Code: | 	 		  '=============================== VBS ==============================
 
' Назначение: Перейти к объекту в активной панели ТС по указанному
 
'             в буфере имени файла/каталога, ключу реестра или GUID
 
' Параметры: "<имя плагина реестра в папке Сеть/FS-плагины>" "%P%Z"
 
'============================================= Автор: Flasher © ===
 
Option Explicit : Dim WSS, FSO, R, A, C, REx
 
If WSH.Arguments.Count <> 2 Then MsgBox "Укажите два параметра!",_
 
4144, " Переход по пути в панели ТС" : WSH.Quit
 
Set WSS = CreateObject("WScript.Shell")
 
Set FSO = CreateObject("Scripting.FileSystemObject")
 
On Error Resume Next
 
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
 
A = WSS.RegRead(R): If A > 0 Or Err.Number <> 0 Then WSS.RegWrite R, 0, "REG_DWORD"
 
C = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
 
If A > 0 Then WSS.RegWrite R, A, "REG_DWORD"
 
On Error Goto 0 : If Len(C) = 0 Then Quit 0
 
Set REx = New RegExp
 
With REx
 
  .IgnoreCase = 1
 
  .Pattern = "(H[CK]|(::)?\{|%|[A-Z]:)[^\r\n""]+[^\s\\""]"
 
  If .Test(C) Then
 
    C = .Execute(C)(0)
 
  Else .Pattern = " *[^\s/|:\\<*?>""][^\r\n\t|:<*?>""]*"
 
    If .Test(C) Then C = RTrim(.Execute(C)(0)) Else Quit 1
 
  End If : .Pattern = "^(::)?\{"
 
End With
 
C = Replace(Replace(C, " \ ", "\"), " / ", "/")
 
If InStr(1, "|HK|HC|", "|" & Left(C, 2) & "|", 1) Then
 
  If Right(C, 1) =  "]" Then C = Left(C, Len(C) - 1)
 
  R = InStr(C, ":") : If R = 4 Or R = 5 Then _
 
  C = Left(C, R - 1) & Mid(C, R + 1)
 
  C = FSO.BuildPath(Replace(C, "/", "\"), "\")
 
  Select Case UCase(Left(C, InStr(C, "\") - 1))
 
    Case "HKCU" C = "HKEY_CURRENT_USER"   & Mid(C, 5)
 
    Case "HKLM" C = "HKEY_LOCAL_MACHINE"  & Mid(C, 5)
 
    Case "HKCR" C = "HKEY_CLASSES_ROOT"   & Mid(C, 5)
 
    Case "HKCC" C = "HKEY_CURRENT_CONFIG" & Mid(C, 5)
 
    Case "HKU"  C = "HKEY_USERS" & Mid(C, 4)
 
  End Select : On Error Resume Next : WSS.RegRead(C)
 
  Do Until Err.Number = 0
 
    On Error Goto 0
 
    If InStr(C, "\") = Len(C) Then Exit Do
 
    C = FSO.GetParentFolderName(C) & "\"
 
    On Error Resume Next : WSS.RegRead(C)
 
  Loop : C = "\\\" & WSH.Arguments(0) & "\" & C
 
ElseIf Not REx.Test(C) Then
 
  REx.Pattern = "^(%|[A-Z]:)?[^:?*<|>]+"
 
  If REx.Test(C) Then C = WSS.ExpandEnvironmentStrings(REx.Execute(C)(0)) Else Quit 1
 
  REx.Pattern = ".+/.+\\.+|.+\\.+/.+" : If REx.Test(C) Then _
 
  REx.Pattern = "(.+)[\\/][^\\/]+[\\/]?$" :_
 
  If REx.Test(C) Then Set C = REx.Execute(C)(0) :_
 
  If FSO.FolderExists("\\?\" & C) + FSO.FileExists("\\?\" & C) = 0 Then C = C.Submatches(0)
 
  If Mid(C, 2, 1) <> ":" Then
 
    C = WSH.Arguments(1) & C
 
    If FSO.FileExists("\\?\" & C) + FSO.FolderExists("\\?\" & C) = 0 Then
 
      For R = 3 To UBound(Split(Replace(C, "/", "\"), "\"))
 
        If FSO.FolderExists("\\?\" & C) Then R = 0 : Exit For Else C = FSO.GetParentFolderName(C)
 
      Next : If R Then Quit 1
 
    End If
 
  End If
 
  If FSO.FolderExists("\\?\" & C) + FSO.FileExists("\\?\" & C) = 0 Then Quit 1
 
Else On Error Resume Next
 
  If Left(C, 1) = "{" Then C = "::" & C
 
  If CreateObject("Shell.Application").NameSpace("shell:" & C) Is Nothing Then Quit 1
 
  If Err Then Quit 1
 
End If
 
If StrComp(FSO.BuildPath(C, "\"), WSH.Arguments(1), 1) = 0 Then Quit 0
 
WSS.SendKeys "^{F10}" : WSS.Run """%COMMANDER_EXE%"" /A /O /S """ & C & """" : Quit 0
 
 
Sub Quit(T)
 
  If T Then MsgBox "Содержимое буфера обмена не эквивалентно" & vbCr &_
 
  "существующему пути в системе или реестре !", 4144, " Переход по пути в панели ТС"
 
  Set FSO = Nothing : Set WSS = Nothing : Set REx = Nothing : WSH.Quit
 
End Sub  | 	 
  _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
  Last edited by Flasher on Fri Jun 05, 2020 22:00; edited 9 times in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 21:39    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Спасибо!  	  | Flasher wrote: | 	 		  | Такой вариант | 	   работает по папкам.
 
Но по ссылкам вида "HKLM\SOFTWARE\Classes\CLSID\" не переходит, TCImg по такой ссылке отрабатывает. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 21:43    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
А что в этом ключе особенного? Обычный ключ. Никаких проблем с заходом в этот куст нет. См. список возможностей, перечисленных на TCKB.
 
Вы первое предложение из моего первого поста прочли? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 21:55    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Flasher
 
My bad, не указал в параметрах название плагина реестра по аналогии с TCImg, т.к. там это не требуется.
 
Кстати FM20.DLL не идёт с дистрибутивом windows, она устанавливается MS-офисом и Internet Explorer. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 22:05    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
Аналогию тут искать бессмысленно, т. к. для разных скриптов могут быть свои частные условия, параметры, как и у любых командных утилит. И я сомневаюсь, что утилита сама вычисляет именование в списке, т. к. в этом просто нет смысла хотя бы потому, что и сам wfx64-файл может называться как угодно, не говоря уже об избыточном переборе всех ключей ini-секции для wfx. Можете проэкспериментировать с переименованием, чтобы самостоятельно в этом убедиться.
 
На данный момент у меня не стоит MS-офис, но FM20.DLL вполне себе наличествует ещё с 12 года. И упомянутый IE по умолчанию всегда идёт в комплекте. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
  Last edited by Flasher on Wed May 20, 2020 22:27; edited 1 time in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 22:27    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Flasher 	  | Quote: | 	 		  | наличествует ещё с 12 года | 	  
 
Посмотрел в имеющихся под рукой сборках Windows 7 (x86/x64) (Версия 6.1 Сборка ОС 7601.24552) (Все последние обновления по апрель месяц включительно) FM20.dll также отсутствует. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 22:32    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				WindR
 
А минимальная версия какая была? На x64 в SysWOW64 смотрели?
 
Так что с переименованием (допустим, "Редактор реестра")? Убедились? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		WindR
 
 
  Joined: 21 Dec 2019 Posts: 35
 
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 23:02    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Flasher wrote: | 	 		  WindR
 
На x64 в SysWOW64 смотрели? | 	   Да, также посмотрел в Windows 10 (x86/x64) (Версия 1909 Сборка ОС 18363.815), там тоже отсутствует. Дальше копать не стал, но как понимаю с IE11 эта библиотека уже не поставляется.
 
 	  | Quote: | 	 		  | Так что с переименованием (допустим, "Редактор реестра")? Убедились? | 	   после переименования естественно не работает.
 
Благодарю за кнопку, теперь можно избавиться от тяжеловесного TCImage. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed May 20, 2020 23:14    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Так это новее 1803.   Вообще я про 7-ку больше спрашивал. Интересно, как, допустим, на 7600 дело обстоит.
 
 
 	  | WindR wrote: | 	 		  | Благодарю за кнопку | 	  Скрипт.   Мне, к примеру, проще пользоваться хоткеем, а не кнопкой. Рад помочь. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |