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

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

1◄Страница 3 из 5► 5

Хм, не понимаю...У вас работает, а у меня - нет..Хм

Так. Телеграм стал открываться. Вот только не перебрасывает на нажатый канал.

Сделайте просто вот так.

Скрипт без 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 "Ассоциация добавлена!"
    


Все должно работать как надо и перенаправлять в телеге на канал.

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

Спасибо! Сработало!

Mikhail, а вы не знаете, как в скрипте для удаления ассоциаций вписать помимо HKCU также HKLM? Попробовал между двумя константами написать "and", но это не увенчалось успехом. Возможно ли объединить на выполнение две константы?

Привет.

Вот так

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


Подставьте свои разделы.

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

Ух! Разобрался! Получился такой рабочий скрипт для удаления ассоциаций 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

А, все правильно пардон).


Удалил свое сообщение.

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

А вот ещё интересный вопрос. В реестре встречаются параметры с именем "(по умолчанию)" (хотя нельзя переименовать). Как же такие параметры на самом деле называются? К примеру, если есть строковый параметр с именем "Browser", то мы можем написать к нему путь HKLM/Software/Programs/Browser. А как же быть с параметрами с именем "(по умолчанию)"? Или же такие параметры обозначаются "@" и "Default"?

Никак не называются, пустое место просто Скопировано"", и наименование строки "REG_SZ" и т.д.

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

Рассмотрим на реальном примере.
Пусть дан путь HKCU/Software/Classes/.ico, и в разделе .ico(не под ним, а внутри) находится тот самый параметр "(по умолчанию)". Как должна выглядеть команда в скрипте, чтобы изменить значение этого параметра на "значение не присвоено"? 

Даже не подскажу, не занимался никогда удалением значения и оставления ветки, обычно, нет значения, и ветка не нужна).


А зачем удалять, если можно перезаписать эту же ветку и получится ветка со значением по умолчанию.

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

Да! перезаписать! Поэкспериментировал)) Значение параметра "(по умолчанию)" сбрасывает, не удаляя и не изменяя другие параметры и разделы:

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

    scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
    
    WshShell.RegWrite "HKCU\SOFTWARE\Classes\.htm\", "", "REG_SZ"

    MsgBox "Ассоциация добавлена!"

 

Столкнулся с ещё одним нечто необъяснимым. Пытаюсь изменить значение параметра ProgId. Но скрипт выдаёт ошибку, мол, "неверная ссылка на корень в разделе реестра". Да, этот параметр также нельзя удалить, либо переименовать, но почему значение нельзя поменять?

WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice\ProgId", "bomba", "REG_SZ"

 

1◄Страница 3 из 5► 5