Вы должны войти, чтобы создавать сообщения и темы.

Связь с ссылками Zoom

◄Страница 2 из 5► 5

В конце концов, составил такой рабочий код:

set WshShell = CreateObject("WScript.Shell")
Dim WshShell

scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")

WshShell.RegWrite "HKCU\SOFTWARE\Classes\zoommtg\", "URL:Zoom Launcher", "REG_SZ"
WshShell.RegWrite "HKCU\SOFTWARE\Classes\zoommtg\URL Protocol", "", "REG_SZ"
WshShell.RegWrite "HKCU\SOFTWARE\Classes\zoommtg\UseOriginalUrlEncoding", "00000001", "REG_DWORD"

WshShell.RegWrite "HKCU\SOFTWARE\Classes\zoommtg\DefaultIcon\", """" & scriptdir & "ZoomPortable.exe"",1"
WshShell.RegWrite "HKCU\SOFTWARE\Classes\zoommtg\shell\open\command\", """" & scriptdir & "ZoomPortable.exe"" ""--url=%1"""

MsgBox "Complete!"

 

Да, я не успел), занят был, а так все правильно, можно было Скопированоkey.RegWrite не переименовывать в СкопированоWshShell.RegWrite и оставить Скопированоset key = CreateObject("WScript.Shell")

Лайкнул Никита
Никита
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 02.01.2022, 16:11

Да, я не успел), занят был, а так все правильно, можно было Скопированоkey.RegWrite не переименовывать в СкопированоWshShell.RegWrite и оставить Скопированоset key = CreateObject("WScript.Shell")

Да просто решил избавиться от лишних переменных)) 
А вы не знаете, почему русские символы в MsgBox при запуске скрипта отображаются закорючками?
И последний вопрос: почему при запуске скрипта удаления ветви реестра выдаёт ошибку о том, что "не удалось удалить ветку реестра" (хотя она там есть и спокойно вручную удаляется)?

set WshShell = CreateObject("WScript.Shell")
Dim WshShell

WshShell.RegDelete "HKCU\SOFTWARE\Classes\zoommtg"

MsgBox "Complete!"

 

Откройте в простом блокноте и "пересохраните как" в ANSI и все.
Насчтет удаление, хм.. у меня удаляет.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

А, понял, я просто ветку удалял, а с подветками он не сможет, тут рекурсивное удаление нужно писать скрипт, проще через батник или через рег файл

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\SOFTWARE\Classes\zoommtg]

 

Лайкнул Никита
Никита
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Спасибо! Русский появился! А вот с удалением - действительно интересно. Вот такую ошибку выдаёт и на рабочей системе, и на виртуалке.

Цитата: Mikhail от 02.01.2022, 16:35

А, понял, я просто ветку удалял, а с подветками он не сможет, тут рекурсивное удаление нужно писать скрипт, проще через батник или через рег файл

 
 
 
 
Windows Registry Editor Version 5.00
 
[-HKEY_CURRENT_USER\SOFTWARE\Classes\zoommtg]
Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\SOFTWARE\Classes\zoommtg]
 
Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\SOFTWARE\Classes\zoommtg]

 

Аааааа, понял)

Если нужно через vbs можно вот так(для удаление разделов с подразделами и проверкой), может можно получше состряпать).

Скрипт

Dim objWMI, strSubKey
Const HKCU = &H80000001
strSubKey = "SOFTWARE\Classes\zoommtg"
Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
Call Del_RegSubKey(objWMI, HKCU, strSubKey)
WScript.Echo "Готовченко."
Set objWMI = Nothing
WScript.Quit 0

Sub Del_RegSubKey(objReg, lngHive, strKey)
Dim arrSubKeys, arrValueNames, arrValueTypes, i
arrValueNames = NULL
objReg.EnumValues lngHive, strKey, arrValueNames, arrValueTypes
If IsArray(arrValueNames) Then
    For i = 0 To UBound(arrValueNames)
        objReg.DeleteValue lngHive, strKey, arrValueNames(i)
    Next
End If
arrSubKeys = NULL
objReg.EnumKey lngHive, strKey, arrSubKeys
If IsArray(arrSubKeys) Then
    For i = 0 To UBound(arrSubKeys)
        Call Del_RegSubKey(objReg, lngHive, strKey & "\" & arrSubKeys(i))
    Next
End If
objReg.DeleteKey lngHive, strKey
End Sub


Где const (вторая строчка) это класс реестра с которым будет работать, все классы и их номера можно почитать тут, можно отредактировать под другой раздел реестра, сменить HKCU на другой раздел и главное номер Const заменить


Да, это сложновато чем через Рег, но интересней).

Лайкнул Никита
Никита
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Спасибо! Только хотел этим кодом поделиться)

Лайкнул Mikhail
Mikhail

Добрый вечер! Столкнулся с "интересной" интеграцией ссылок в портативном Телеграмме. 
В HKCU\SOFTWARE\Classes\tg\shell\open\command и HKCU\SOFTWARE\Classes\tdesktop.tg\shell\open\command\ в параметре вписана строка:

"C:\Users\NikosPikos\Desktop\Telegram Portable\Telegrаm.exe" -workdir "C:/Users/NikosPikos/Desktop/Telegram Portable/" -- "%1"

Здесь обратные слэши! 
Код, который я собрал, может создать строчку только с обычными слышами:

"C:\Users\NikosPikos\Desktop\Telegram Portable\Telegram.exe" -workdir C:\Users\NikosPikos\Desktop\Telegram Portable\" -- "%1"

Как же отредактировать код, чтобы было, как положено?

set WshShell = CreateObject("WScript.Shell")
Dim WshShell

    scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
    
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tg\", "URL:Telegram Link", "REG_SZ"
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tg\URL Protocol", "", "REG_SZ"
    
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tg\DefaultIcon\", """" & scriptdir & "Telegram.exe"",1"
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tg\shell\open\command\", """" & scriptdir & "Telegram.exe"" -workdir """ & scriptdir & """ -- ""%1"""
    
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tdesktop.tg\", "", "REG_SZ"
    
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tdesktop.tg\DefaultIcon\", """" & scriptdir & "Telegram.exe"",1"
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\tdesktop.tg\shell\open\command\", """" & scriptdir & "Telegram.exe"" -workdir """ & scriptdir & """ -- ""%1"""
    
    MsgBox "Ассоциация добавлена!"

 

Я уже проверял давно, оно и так будет открывать ссылки, бэкслеш не имеет значения, оставляйте как есть, пусть прописывает "Скопировано\".

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Проверял множество раз в виртуалке - не работает...Но как только меняю обычный слэш на обратный - всё начинает работать..

Блин, теперь даже с обратным слэшэм не работает)))

Я только что проверил на виртуалке, все работает, ваш скрипт, пруф.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
◄Страница 2 из 5► 5