Связь с ссылками Zoom
Цитата: Никита от 03.01.2022, 12:14Хм, не понимаю...У вас работает, а у меня - нет..Хм
Хм, не понимаю...У вас работает, а у меня - нет..Хм
Цитата: Никита от 03.01.2022, 12:37Так. Телеграм стал открываться. Вот только не перебрасывает на нажатый канал.
Так. Телеграм стал открываться. Вот только не перебрасывает на нажатый канал.
Цитата: Mikhail от 03.01.2022, 12:46Сделайте просто вот так.
[spoiler title="Скрипт без workdir"]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"" -- ""%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"" -- ""%1""" MsgBox "Ассоциация добавлена!"[/spoiler]
Все должно работать как надо и перенаправлять в телеге на канал.
Сделайте просто вот так.
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"" -- ""%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"" -- ""%1"""
MsgBox "Ассоциация добавлена!"
Все должно работать как надо и перенаправлять в телеге на канал.
Цитата: Никита от 03.01.2022, 13:04Спасибо! Сработало!
Спасибо! Сработало!
Цитата: Никита от 04.01.2022, 16:04Mikhail, а вы не знаете, как в скрипте для удаления ассоциаций вписать помимо HKCU также HKLM? Попробовал между двумя константами написать "and", но это не увенчалось успехом. Возможно ли объединить на выполнение две константы?
Mikhail, а вы не знаете, как в скрипте для удаления ассоциаций вписать помимо HKCU также HKLM? Попробовал между двумя константами написать "and", но это не увенчалось успехом. Возможно ли объединить на выполнение две константы?
Цитата: Mikhail от 04.01.2022, 16:11Привет.
[spoiler title="Вот так"]Dim objWMI, strSubKey Const HKCU = &H80000001 Const HKLM = &H80000002 strSubKey = "SOFTWARE\test" strSubKey = "SOFTWARE\test" Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv") Call Del_RegSubKey(objWMI, HKCU, strSubKey) Call Del_RegSubKey(objWMI, HKLM, 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]
Подставьте свои разделы.
Привет.
Dim objWMI, strSubKey
Const HKCU = &H80000001
Const HKLM = &H80000002
strSubKey = "SOFTWARE\test"
strSubKey = "SOFTWARE\test"
Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
Call Del_RegSubKey(objWMI, HKCU, strSubKey)
Call Del_RegSubKey(objWMI, HKLM, 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
Подставьте свои разделы.
Цитата: Никита от 04.01.2022, 16:13Ух! Разобрался! Получился такой рабочий скрипт для удаления ассоциаций uTorrent:
[spoiler title=""]
Dim objWMI, strSubKey Const HKCU = &H80000001 strSubKey1 = "SOFTWARE\Classes\.btapp" strSubKey2 = "SOFTWARE\Classes\.btinstall" strSubKey3 = "SOFTWARE\Classes\.btkey" strSubKey4 = "SOFTWARE\Classes\.btsearch" strSubKey5 = "SOFTWARE\Classes\.btskin" strSubKey6 = "SOFTWARE\Classes\.torrent" strSubKey7 = "SOFTWARE\Classes\Magnet" strSubKey8 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent" strSubKey9 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-app" strSubKey10 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-appinst" strSubKey11 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-key" strSubKey12 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrentsearchdescription+xml" strSubKey13 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-skin" strSubKey14 = "SOFTWARE\Classes\uTorrent" Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv") Call Del_RegSubKey(objWMI, HKCU, strSubKey1) Call Del_RegSubKey(objWMI, HKCU, strSubKey2) Call Del_RegSubKey(objWMI, HKCU, strSubKey3) Call Del_RegSubKey(objWMI, HKCU, strSubKey4) Call Del_RegSubKey(objWMI, HKCU, strSubKey5) Call Del_RegSubKey(objWMI, HKCU, strSubKey6) Call Del_RegSubKey(objWMI, HKCU, strSubKey7) Call Del_RegSubKey(objWMI, HKCU, strSubKey8) Call Del_RegSubKey(objWMI, HKCU, strSubKey9) Call Del_RegSubKey(objWMI, HKCU, strSubKey10) Call Del_RegSubKey(objWMI, HKCU, strSubKey11) Call Del_RegSubKey(objWMI, HKCU, strSubKey12) Call Del_RegSubKey(objWMI, HKCU, strSubKey13) Call Del_RegSubKey(objWMI, HKCU, strSubKey14) Const HKLM = &H80000002 strSubKey15 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent" strSubKey16 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-app" strSubKey17 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-appinst" strSubKey18 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-key" strSubKey19 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrentsearchdescription+xml" strSubKey20 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-skin" strSubKey21 = "SOFTWARE\Classes\uTorrent" Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv") Call Del_RegSubKey(objWMI, HKLM, strSubKey15) Call Del_RegSubKey(objWMI, HKLM, strSubKey16) Call Del_RegSubKey(objWMI, HKLM, strSubKey17) Call Del_RegSubKey(objWMI, HKLM, strSubKey18) Call Del_RegSubKey(objWMI, HKLM, strSubKey19) Call Del_RegSubKey(objWMI, HKLM, strSubKey20) Call Del_RegSubKey(objWMI, HKLM, strSubKey21) 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]
Ух! Разобрался! Получился такой рабочий скрипт для удаления ассоциаций uTorrent:
Dim objWMI, strSubKey
Const HKCU = &H80000001
strSubKey1 = "SOFTWARE\Classes\.btapp"
strSubKey2 = "SOFTWARE\Classes\.btinstall"
strSubKey3 = "SOFTWARE\Classes\.btkey"
strSubKey4 = "SOFTWARE\Classes\.btsearch"
strSubKey5 = "SOFTWARE\Classes\.btskin"
strSubKey6 = "SOFTWARE\Classes\.torrent"
strSubKey7 = "SOFTWARE\Classes\Magnet"
strSubKey8 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent"
strSubKey9 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-app"
strSubKey10 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-appinst"
strSubKey11 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-key"
strSubKey12 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrentsearchdescription+xml"
strSubKey13 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-skin"
strSubKey14 = "SOFTWARE\Classes\uTorrent"
Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
Call Del_RegSubKey(objWMI, HKCU, strSubKey1)
Call Del_RegSubKey(objWMI, HKCU, strSubKey2)
Call Del_RegSubKey(objWMI, HKCU, strSubKey3)
Call Del_RegSubKey(objWMI, HKCU, strSubKey4)
Call Del_RegSubKey(objWMI, HKCU, strSubKey5)
Call Del_RegSubKey(objWMI, HKCU, strSubKey6)
Call Del_RegSubKey(objWMI, HKCU, strSubKey7)
Call Del_RegSubKey(objWMI, HKCU, strSubKey8)
Call Del_RegSubKey(objWMI, HKCU, strSubKey9)
Call Del_RegSubKey(objWMI, HKCU, strSubKey10)
Call Del_RegSubKey(objWMI, HKCU, strSubKey11)
Call Del_RegSubKey(objWMI, HKCU, strSubKey12)
Call Del_RegSubKey(objWMI, HKCU, strSubKey13)
Call Del_RegSubKey(objWMI, HKCU, strSubKey14)
Const HKLM = &H80000002
strSubKey15 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent"
strSubKey16 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-app"
strSubKey17 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-appinst"
strSubKey18 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-key"
strSubKey19 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrentsearchdescription+xml"
strSubKey20 = "SOFTWARE\Classes\MIME\Database\Content Type\application/x-bittorrent-skin"
strSubKey21 = "SOFTWARE\Classes\uTorrent"
Set objWMI = GetObject("winmgmts:\\.\root\default:StdRegProv")
Call Del_RegSubKey(objWMI, HKLM, strSubKey15)
Call Del_RegSubKey(objWMI, HKLM, strSubKey16)
Call Del_RegSubKey(objWMI, HKLM, strSubKey17)
Call Del_RegSubKey(objWMI, HKLM, strSubKey18)
Call Del_RegSubKey(objWMI, HKLM, strSubKey19)
Call Del_RegSubKey(objWMI, HKLM, strSubKey20)
Call Del_RegSubKey(objWMI, HKLM, strSubKey21)
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
Цитата: Mikhail от 04.01.2022, 16:24А, все правильно пардон).
Удалил свое сообщение.
А, все правильно пардон).
Удалил свое сообщение.
Цитата: Никита от 04.01.2022, 17:13А вот ещё интересный вопрос. В реестре встречаются параметры с именем "(по умолчанию)" (хотя нельзя переименовать). Как же такие параметры на самом деле называются? К примеру, если есть строковый параметр с именем "Browser", то мы можем написать к нему путь HKLM/Software/Programs/Browser. А как же быть с параметрами с именем "(по умолчанию)"? Или же такие параметры обозначаются "@" и "Default"?
А вот ещё интересный вопрос. В реестре встречаются параметры с именем "(по умолчанию)" (хотя нельзя переименовать). Как же такие параметры на самом деле называются? К примеру, если есть строковый параметр с именем "Browser", то мы можем написать к нему путь HKLM/Software/Programs/Browser. А как же быть с параметрами с именем "(по умолчанию)"? Или же такие параметры обозначаются "@" и "Default"?
Цитата: Mikhail от 04.01.2022, 17:18Никак не называются, пустое место просто
"", и наименование строки "REG_SZ" и т.д.
Никак не называются, пустое место просто Скопировано"", и наименование строки "REG_SZ" и т.д.
Цитата: Никита от 04.01.2022, 17:25Рассмотрим на реальном примере.
Пусть дан путь HKCU/Software/Classes/.ico, и в разделе .ico(не под ним, а внутри) находится тот самый параметр "(по умолчанию)". Как должна выглядеть команда в скрипте, чтобы изменить значение этого параметра на "значение не присвоено"?
Рассмотрим на реальном примере.
Пусть дан путь HKCU/Software/Classes/.ico, и в разделе .ico(не под ним, а внутри) находится тот самый параметр "(по умолчанию)". Как должна выглядеть команда в скрипте, чтобы изменить значение этого параметра на "значение не присвоено"?
Цитата: Mikhail от 04.01.2022, 17:33Даже не подскажу, не занимался никогда удалением значения и оставления ветки, обычно, нет значения, и ветка не нужна).
А зачем удалять, если можно перезаписать эту же ветку и получится ветка со значением по умолчанию.
Даже не подскажу, не занимался никогда удалением значения и оставления ветки, обычно, нет значения, и ветка не нужна).
А зачем удалять, если можно перезаписать эту же ветку и получится ветка со значением по умолчанию.
Цитата: Никита от 04.01.2022, 17:43Да! перезаписать! Поэкспериментировал)) Значение параметра "(по умолчанию)" сбрасывает, не удаляя и не изменяя другие параметры и разделы:
set WshShell = CreateObject("WScript.Shell") Dim WshShell scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"") WshShell.RegWrite "HKCU\SOFTWARE\Classes\.htm\", "", "REG_SZ" MsgBox "Ассоциация добавлена!"
Да! перезаписать! Поэкспериментировал)) Значение параметра "(по умолчанию)" сбрасывает, не удаляя и не изменяя другие параметры и разделы:
set WshShell = CreateObject("WScript.Shell")
Dim WshShell
scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
WshShell.RegWrite "HKCU\SOFTWARE\Classes\.htm\", "", "REG_SZ"
MsgBox "Ассоциация добавлена!"
Цитата: Никита от 04.01.2022, 18:42Столкнулся с ещё одним нечто необъяснимым. Пытаюсь изменить значение параметра ProgId. Но скрипт выдаёт ошибку, мол, "неверная ссылка на корень в разделе реестра". Да, этот параметр также нельзя удалить, либо переименовать, но почему значение нельзя поменять?
WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice\ProgId", "bomba", "REG_SZ"
Столкнулся с ещё одним нечто необъяснимым. Пытаюсь изменить значение параметра ProgId. Но скрипт выдаёт ошибку, мол, "неверная ссылка на корень в разделе реестра". Да, этот параметр также нельзя удалить, либо переименовать, но почему значение нельзя поменять?
WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice\ProgId", "bomba", "REG_SZ"