Связь с ссылками Zoom
Цитата: Никита от 02.01.2022, 16:01В конце концов, составил такой рабочий код:
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!"
В конце концов, составил такой рабочий код:
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!"
Цитата: Mikhail от 02.01.2022, 16:11Да, я не успел), занят был, а так все правильно, можно было
key.RegWriteне переименовывать вWshShell.RegWriteи оставитьset key = CreateObject("WScript.Shell")
Да, я не успел), занят был, а так все правильно, можно было Скопированоkey.RegWrite не переименовывать в СкопированоWshShell.RegWrite и оставить Скопированоset key = CreateObject("WScript.Shell")
Цитата: Никита от 02.01.2022, 16:19Цитата: 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!"
Цитата: 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!"
Цитата: Mikhail от 02.01.2022, 16:26Откройте в простом блокноте и "пересохраните как" в ANSI и все.
Насчтет удаление, хм.. у меня удаляет.
Откройте в простом блокноте и "пересохраните как" в ANSI и все.
Насчтет удаление, хм.. у меня удаляет.
Цитата: 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]
Цитата: Никита от 02.01.2022, 16:35Спасибо! Русский появился! А вот с удалением - действительно интересно. Вот такую ошибку выдаёт и на рабочей системе, и на виртуалке.
Спасибо! Русский появился! А вот с удалением - действительно интересно. Вот такую ошибку выдаёт и на рабочей системе, и на виртуалке.
Цитата: Никита от 02.01.2022, 16:36Цитата: 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]
Аааааа, понял)
Цитата: 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]
Аааааа, понял)
Цитата: Mikhail от 02.01.2022, 16:55Если нужно через vbs можно вот так(для удаление разделов с подразделами и проверкой), может можно получше состряпать).
[spoiler title="Скрипт"]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[/spoiler]
Где const (вторая строчка) это класс реестра с которым будет работать, все классы и их номера можно почитать тут, можно отредактировать под другой раздел реестра, сменить HKCU на другой раздел и главное номер Const заменить
Да, это сложновато чем через Рег, но интересней).
Если нужно через 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 заменить
Да, это сложновато чем через Рег, но интересней).
Цитата: Никита от 02.01.2022, 16:59Спасибо! Только хотел этим кодом поделиться)
Спасибо! Только хотел этим кодом поделиться)
Цитата: Никита от 02.01.2022, 20:13Добрый вечер! Столкнулся с "интересной" интеграцией ссылок в портативном Телеграмме.
В 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 "Ассоциация добавлена!"
Добрый вечер! Столкнулся с "интересной" интеграцией ссылок в портативном Телеграмме.
В 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 "Ассоциация добавлена!"
Цитата: Mikhail от 03.01.2022, 04:53Я уже проверял давно, оно и так будет открывать ссылки, бэкслеш не имеет значения, оставляйте как есть, пусть прописывает "
\".
Я уже проверял давно, оно и так будет открывать ссылки, бэкслеш не имеет значения, оставляйте как есть, пусть прописывает "Скопировано\".
Цитата: Никита от 03.01.2022, 11:30Проверял множество раз в виртуалке - не работает...Но как только меняю обычный слэш на обратный - всё начинает работать..
Проверял множество раз в виртуалке - не работает...Но как только меняю обычный слэш на обратный - всё начинает работать..
Цитата: Никита от 03.01.2022, 11:38Блин, теперь даже с обратным слэшэм не работает)))
Блин, теперь даже с обратным слэшэм не работает)))
Цитата: Mikhail от 03.01.2022, 12:01Я только что проверил на виртуалке, все работает, ваш скрипт, пруф.
Я только что проверил на виртуалке, все работает, ваш скрипт, пруф.