Как создать ярлык для URL?

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

А вот обещанный мной скрипт с расширенным функционалом, то есть если в буфере корректный путь, то URL на него, иначе - на %T.
15 строк против 26, кстати...
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori

[cut="Вообще-то так:"]

Код: Выделить всё

'============================== VBS ===============================
' Cоздать URL-ярлык в активном каталоге со ссылкой из буфера обмена
' Параметр: "%P" "%O"
'==================================================================
Set P = WSH.Arguments : If P.Count < 2 Then WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSS = CreateObject("WScript.Shell")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
On Error Resume Next
A = WSS.RegRead(R): If A > 0 Or Err.Number <> 0 Then WSS.RegWrite R, 0, "REG_DWORD"
URL = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
If A > 0 Then WSS.RegWrite R, A, "REG_DWORD"
On Error Goto 0 : Test = Left(URL, 4)
If Test = "" Or (Test <> "www." And Test <> "http") Then MsgBox "Буфер " &_
"обмена не содержит гиперссылки!", 4144, " Создание URL-ярлыка" : WSH.Quit
If P(1) <> "" Then Name = P(1) Else Name = InPutBox(String(5, vbCr) &_
"Введите базовое имя URL-файла:", " Создание URL со ссылкой из Б/О")
While FSO.FileExists("\\?\" & P(0) & Name & ".url") _
Or  FSO.FolderExists("\\?\" & P(0) & Name & ".url")
  i = i + 1 : Name = P(1) & " (" & i & ")"
Wend : FP = P(0) & Name & ".url"
If Len(FP) > 259 Then Pr = "\\?\" : If Len(FP) < 260 Then _
M = MsgBox("Путь к ярлыку слишком длинный!" & vbCr & vbCr & "Да -" &_
" оставить. Нет - обрезать справа.", 4132, " Создание URL-ярлыка") :_
If M = 7 Then FP = Left(Left(FP, Len(FP) - 4), 255) & ".url"
With FSO.CreateTextFile(Pr & FP, 1, 1)
  .Write "[InternetShortcut]" & VbCrLf & "URL=" & URL : .Close
End With : WSS.SendKeys "^r"
[/cut]
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher
Рад тебя видеть на форуме.
Скрипт который ты представил, он более правильный?
А то скрипт с предыдущей страницы, вроде у меня нормально работает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Спасибо.
Ну, если бы было не так, разве я стал бы его предлагать? :wink:
Данный быстрее, так как не лезет в инет, чтобы получить заголовок.
К тому же тут есть счётчик на случай наличия.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher писал(а):Ну, если бы было не так, разве я стал бы его предлагать?
Ну да, логично.
Flasher писал(а):Данный быстрее, так как не лезет в инет, чтобы получить заголовок.
Отлично, а то это дело я тоже заметил и думал зачем он ломится в инет.
Flasher писал(а):К тому же тут есть счётчик на случай наличия.
Это тоже супер.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Есть рабочий вариант на сегодня?

ПС. Перепробовал все из топика, ничего не работает.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Strek
А что именно нужно, создать из буфера url-ярлык?
Ответить