1

Тема: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

День добрый.
Нужен скрипт, который для сохраненных ярлыков интернета (файлы .url):
* скачивает с соответствующей страницы иконку сайта (favicon, если конечно, она в подходящем формате ico) в файл site.com в ту же папку
* прописывает эту иконку в файл ярлыка url
* устанавливает имя ярлыка формата site.com(без www. и всего такого)через пробел содержимое <title></title>(подчищенное и обрезанное, скажем, до 96 символов)

Сам написать не смог, смотрел форумы, скачал Com.ahk, iWeb.ahk, но у меня не заработало. Нашел на английском форуме рабочий пример скрипта "Extract title from a web page", там на регулярном выражении, но как такое подстроить под favicon я не догадался.
Укажите верный путь.

2

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium, у нас принято в одной теме задавать один вопрос, а у вас тут не вопрос, а целое ТЗ. Я бы только платно взялся.

upsi_daezium пишет:

Укажите верный путь.

Верный путь для чего? Как иконку скачать? URLDownloadToFile.
Создать или изменить ярлык — FileCreateShortcut.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Flasher, 2016-09-13 04:44:13)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

В коем-то веке такие несложные ТЗ тут запретили? За деньги тут особо нечего делать, но на AHK мне лень.

+ Вот накидал VBS, если заинтересует:
'============================== VBS ===============================
' Cоздать URL-ярлык в заданном каталоге со ссылкой из буфера обмена
' Параметр: "<Путь к каталогу>"  (при отсутствии - рабочий каталог)
'==================================================================
Dim WSH : Set WSH = CreateObject("WScript.Shell")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
On Error Resume Next
A = WSH.RegRead(R): If A > 0 Or Err.Number <> 0 Then WSH.RegWrite R, 0, "REG_DWORD"
URL = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
If A > 0 Then WSH.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-ярлыка" : WScript.Quit
S = Split(": ? * "" ; \ / | < >")
R = Array(-230,-225,-246,698,894,-24,-24,-24,706,707)
With WScript.CreateObject("InternetExplorer.Application", "IE_")
  .Visible = 0 : .Silent = 1 : .AddressBar = 0
  .MenuBar = 0 : .ToolBar = 0 : .StatusBar = 0 : .Navigate(URL)
  While IsEmpty(Title) Or Left(Title, 4) = "http" WScript.Sleep 20 :Wend
  .Stop : .ExecWB 45, 2 : FN = Title & ".url"
End With : Sub IE_TitleChange(T) Title = Trim(T) : End Sub
For i = 0 To 9 : FN = Replace(FN, S(i), ChrW(R(i))) : Next
If WScript.Arguments.Count = 0 Then
  Dir = WSH.CurrentDirectory & "\"
Else Dir = WScript.Arguments(0) End If : FP = Dir & FN
If Len(FP) > 259 Then Pr = "\\?\" : If Len(Dir) < 260 Then _
M = MsgBox("Путь к ярлыку слишком длинный!" & vbCr & vbCr & "Да -" &_
" оставить. Нет - обрезать справа.", 4132, " Создание URL-ярлыка") :_
If M = 7 Then FP = Left(Left(FP, Len(FP) - 4), 255) & ".url"

Set HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
Set FSO  = CreateObject("Scripting.FileSystemObject")
HTTP.Option(4) = 13056 : HTTP.Option(6) = True
HTTP.Option(12) = True : HTTP.Option(14) = 5
With New RegExp
  .Pattern = "^((https?://|https?://www\.|www\.)([^/]+))/?.*"
  With .Execute(URL)(0) URL1 = .Submatches(0)
  Name = .Submatches(2) & ".ico" : End With
End With : Icon = URL1 & "/favicon.ico"
HTTP.Open "GET", Icon, false
HTTP.SetRequestHeader "Pragma", "no-cache"
HTTP.SetRequestHeader "Cache-Control", "no-cache"
HTTP.Send : HTTP.WaitForResponse 5, True
If HTTP.GetResponseHeader("Content-Type") = "image/x-icon" Then
  Icon = Dir & Name
  If Not FSO.FileExists(Icon) Then
    With CreateObject("SAPI.SpFileStream")
      .Format.Type = 1 : .Open Icon, 3, True
      .Write HTTP.ResponseBody : .Close
    End With
  End If : HTTP.Abort
  FIcon = vbCrLf & "IconFile=" & Icon & vbCrLf & "IconIndex=0"
End If
With FSO.CreateTextFile(Pr & FP, 1, 1)
  .Write "[InternetShortcut]" & vbCrLf & "URL=" & URL & FIcon : .Close
End With : WSH.SendKeys "^r"

4

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Укажите верный путь.

Очевидно, не качать и запускать что попало в надежде на чудо, а открыть и вникать в справку. Или перепоручить тому, кто это сделает.

5

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium пишет:

Нашел на английском форуме рабочий пример скрипта "Extract title from a web page"

Почему-то тот скрипт некорректно кириллицу отображает.

Url := "http://forum.script-coding.com/"

UrlDownloadToFile, %Url%, tempurlahk.html
FileRead, FileBytes, tempurlahk.html
FileDelete, tempurlahk.html
FoundPos := RegExMatch(FileBytes, "m)<title>(\r?\n)?.*(\r\n)?</title>", Title)
StringReplace, Title, Title,`r`n,,All
StringReplace, Title, Title,%A_Tab%,,All
StringReplace, Title, Title,<title>,,All
StringReplace, Title, Title,</title>,,All
MsgBox, %Title%

6 (изменено: stealzy, 2016-09-12 12:31:43)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

yuppu, кодировка то не UTF. UrlDownloadToVar() - ADO.Charset := "utf-8".

URL := "http://forum.script-coding.com/"
FileBytes := UrlDownloadToVar(URL)
FoundPos := RegExMatch(FileBytes, "m)<title>(\r?\n)?.*(\r\n)?</title>", Title)
StringReplace, Title, Title,`r`n,,All
StringReplace, Title, Title,%A_Tab%,,All
StringReplace, Title, Title,<title>,,All
StringReplace, Title, Title,</title>,,All
MsgBox, %Title%
Return

UrlDownloadToVar(URL) {
	WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
	try WebRequest.Open("GET", URL, true)
	catch	Error {
		ErrorLevel := "Wrong URL"
		return false
		}
	WebRequest.Send()
	try WebRequest.WaitForResponse()
	catch	Error {
		ErrorLevel := "No access to the Internet"
		return false
		}
	HTTPStatusCode := WebRequest.status
	if (SubStr(HTTPStatusCode, 1, 1) ~= "4|5") { ; 4xx — Client Error, 5xx — Server Error. wikipedia.org/wiki/List_of_HTTP_status_codes
		ErrorLevel := "HTTPStatusCode: " HTTPStatusCode
		return false
		}
	OutputDebug UrlDownloadToVar() HTTPStatusCode = %HTTPStatusCode%
	; ans:=WebRequest.ResponseText

	ADO := ComObjCreate("adodb.stream")
	ADO.Type := 1
	ADO.Mode := 3
	ADO.Open()
	ADO.Write(WebRequest.ResponseBody())
	ADO.Position := 0
	ADO.Type := 2
	ADO.Charset := "utf-8"
	ans := ADO.ReadText()

	return ans
}

7 (изменено: upsi_daezium, 2016-09-12 14:34:02)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

ypppu кириллицу может не отображать потому что сохраняет в другой кодировке, у меня все ок.
stealzy спасибо за ваш скрипт, возьму кое что для себя.
А вот мой вариант, работает, но надо кое-что допилить:


mylink := "http://forum.script-coding.com/"


myhttp := ComObjCreate("WinHttp.WinHttpRequest.5.1")
myhttp.Open("GET", mylink)
myhttp.Send()
this_text := myhttp.ResponseText
html := ComObjCreate("htmlfile")
html.write(this_text)


Loop % html.getElementsByTagName("link").length
  if (html.getElementsByTagName("link")[A_Index - 1].rel = "shortcut icon")
    favIcon := html.getElementsByTagName("link")[A_Index - 1].href

pageTitle := html.title


StringReplace, favIcon, favIcon, about:,, A ; я нашел это на англ.форуме, незнаю откуда берется about:
msgbox title=%pageTitle% `n %mylink%%favIcon% `n %A_WorkingDir%\favicon.ico
UrlDownloadToFile, %mylink%%favIcon%, %A_WorkingDir%\favicon.ico

Там есть комментарий, перемещения из строки "about:", я нашел только это, но нигде не объясняется откуда он там взялся, может тут кто-то знает?
Ваши замечания\предложения, это первый мой скрипт по работе с интернет страницами, так что ногами сильно не пинайте.

8

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium
1. Тег title есть не на всех страницах.
2. URL-путь с подпапками/параметрами/якорями следом за хостом не вернёт в таком коде favicon, для этого нужно регуляркой их отсечь.
3. Запрещённые символы для имени требуют годной замены.

В моём коде всё учтено. Стоило попробовать, чтобы далее обсуждать нюансы.

9

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Flasher
Я новичок в Autohotkey, а в VBS уж совсем ноль, можете написать с комментариями "для самых маленьких", чтобы было понятно что к чему.

10

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium
В шапке написано, что он делает. Протестируйте на разных ссылках из буфера - полностью соответствует задаче или нет.
Другой путь к каталогу можно прописать параметром к скрипту (при пробелах в кавычках).

11

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Flasher, я VBS не знаю, но полагаю, что для данной задачи создавать глюкавый InternetExplorer.Application излишне.

12

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev
"Вставить ник" сломался? А как ещё вытащить title без тега?

13

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

"Вставить ник" сломался?

Нет. Просто не обратил внимания на это новшество.

А как ещё вытащить title без тега?

А как его IE вытаскивает? Без тега, вроде, там просто ссылка показывается.

14

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Из процедуры в событии

Sub IE_TitleChange(T) Title = Trim(T) : End Sub

Title может быть спрятан или не в той кодировке.

15 (изменено: Malcev, 2016-09-13 02:32:13)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Кодировку можно узнать:

Url = http://www.script-coding.com/WSH.html
Url = http://www.microsoft.com
 
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1") 
HTTP.Open("GET", Url) 
HTTP.Send()   

Body := HTTP.ResponseBody
pArr := ComObjValue(Body)
cBytes := NumGet(pArr+0, A_PtrSize = 8? 24:16, "uint")
pText := NumGet(pArr+0, A_PtrSize = 8? 16:12, "ptr") 

RegexMatch(HTTP.ResponseText, "`nmi)<meta.*?charset=""*(?<Set>.*?)"".*?>", Char)   
Encode := CharSet = "windows-1251" ? "cp1251" : CharSet

MsgBox, % StrGet(pText, cBytes, Encode)

На счёт спрятанного тайтла не понял.
Можно пример сайта?
И я имел в виду не как IE получает title в вашем коде, а по какому алгоритму он его вообще получает.
На офсайте нашёл только это:

The page title is specified by the Hypertext Markup Language (HTML) <TITLE> tag on the current page. For example, when you view a Web page with the following <TITLE> tag, "Welcome to Microsoft's Home Page" is displayed on the title bar of the Internet Explorer window:
<TITLE>Welcome to Microsoft's Home Page</TITLE>

https://support.microsoft.com/en-us/kb/176497

16 (изменено: Flasher, 2016-09-13 03:26:54)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Кодировку-то узнать можно, но с конвертацией могут быть проблемы.
Пример сайта не вспомню, но такие попадались (на php, кажется).
Алгоритм - ожидание появления заголовка в строке, остановка загрузки и выход из IE.

17 (изменено: Malcev, 2016-09-13 03:55:07)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Кодировку-то узнать можно, но с конвертацией могут быть проблемы.

Например?
У меня пока, что проблемы с IE. Раз 10 ваш скрипт запускаю и пишет, что объект IE создан быть не может.
Такое у меня было и на автохотки, особенно если сайты полны джаваскриптов.

Пример сайта не вспомню, но такие попадались (на php, кажется).

Я нашел нечто подобное, но там исходный код можно получить, проверяя наличие header Link.
https://mathiasbynens.be/notes/css-without-html

Алгоритм - ожидание появления заголовка в строке, остановка загрузки и выход из IE.

Опять же это вы про работу вашего скрипта.
Как я понял алгоритм у IE и у других броузеров такой - если нету тега title, то вставляют в заголовок адрес сайта.
Всё это можно проделать и без создания InternetExplorer.Application.

18

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev пишет:

Раз 10 ваш скрипт запускаю и пишет, что объект IE создан быть не может.

Ссылка на проблемный сайт не помешала бы.

Malcev пишет:

Как я понял алгоритм у IE и у других броузеров такой - если нету тега title, то вставляют в заголовок адрес сайта.

Так по событию изначально и возвращается адрес, я это проверяю, пока не появится нормальный.

19 (изменено: Malcev, 2016-09-13 04:10:22)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

А дело не в проблемных сайтах - IE в какой-то момент глючит.
И грузит он их долго.
Например:
https://www.parimatch.com/live.html
Сравните с временем загрузки через WinHttpRequest.

Баг нашёл - загрузите этот сайт:
https://twitter.com/chriscoyier/status/ … 8228708352

20

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Я и не утверждал, что он будет быстрее. По скорости он, естественно, немного (а иногда чуть больше) проигрывает. Это издержки в желании получать существующий заголовок всегда. Я сам к данному методу и пришёл, когда <title> не находился.

Баг поправил.

21 (изменено: Malcev, 2016-09-13 13:08:56)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Это издержки в желании получать существующий заголовок всегда

Ну скажем не всегда:
http://forum.teamspeak.com
Подозреваю, могут быть еще другие варианты, когда желаемый заголовок не получите и придется видоизменять скрипт.
Кстати, если запустить пару раз ваш скрипт с этим сайтом, то IE вываливается.

22

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Проверил, никаких проблем. Дважды запустил скрипт, получил файлы в рамках полусекунды.

23

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

А вы раз 10 подряд запустите.
И какой заголовок вы получаете?
Если Just a moment..., то это неверный заголовок.

24

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Почему неверный-то, если я его в браузерах вижу?

25

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Потому что до установки администратором ресурса этой антиботовской защиты от дураков, вы получали:

<title>TeamSpeak - Community - TeamSpeak</title>

26

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev пишет:

до установки администратором ресурса этой антиботовской защиты от дураков

А, я не обратил внимание, что это предзагрузочная страница, ведущая на форум.
При отключённых Cookies висит. Хм. Ну, тут дело такое. По сути страница-то загружена, только не главная. Можно, конечно, эти секунды ждать, но это будет довольно существенно по времени. А WinHTTPRequest как с этим справляется? Там же не редирект, а нечто иное.

27

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Можно, конечно, эти секунды ждать, но это будет довольно существенно по времени.

По-другому никак.
Через WinHttpRequest надо высчитывать ответ, можно запускать выполнение JScript, а можно высчитывая только с помощью AHK:

link := "http://forum.teamspeak.com"
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", link, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)")
HTTP.Send()
HTTP.WaitForResponse()
msgbox % clipboard := ResponseText := HTTP.ResponseText
RegexMatch(ResponseText, "s)setTimeout.+?, (.+?)=\{""(.+?)"":(.+?)}.+?jschl_vc"" value=""(.+?)"".+?pass"" value=""(.+?)""", match)
var := match1 "." match2
jschl_vc := match4
pass := match5
FinalResult := Count(match3)
match := "", Pos := 1  
While Pos := RegExMatch(ResponseText, "s);" var "(..)(.+?)(?=;)",match,Pos+StrLen(match))
{
   result := Count(match2)
   if (match1 = "+=")
      FinalResult += result
   if (match1 = "-=")
      FinalResult -= result
   if (match1 = "*=")
      FinalResult *= result
}
JsLink := RegexReplace(link, "(^https?://.+?)/.*","$1")
finalresult += StrLen(RegexReplace(JsLink, "^https?://"))
JsLink .= "/cdn-cgi/l/chk_jschl?jschl_vc=" jschl_vc "&pass=" pass "&jschl_answer=" finalresult
sleep 5000
HTTP.Open("GET", Jslink, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)")
HTTP.Send()
HTTP.WaitForResponse()
msgbox % clipboard := ResponseText := HTTP.ResponseText



Count(var)
{
   match := digit := "", Pos := 1
   While Pos := RegExMatch(var, ".+?(\+\(|$)",match,Pos+StrLen(match))
   {
      RegexReplace(match, "(!\+\[]|\+!!\[])",,count)
      digit .= count
   }   
   return digit
}

;  +[] = 0
;  +!![] = 1
;  !+[] = 1
;  *=+((!+[]+!![]+!![]+!![]+[])+(+!![]))   41
;  ;  +=+((+!![]+[])+(+[]))   10

28

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Запустил. Выводит код заплатки.

29

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Странно. У меня на нескольких компьютерах подобные сайты открывает.
Может дело в этом:
Первый msgbox выводит код этой защиты, а второй через 5 секунд выводит код сайта.

30

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Сейчас вышло. А в первый раз об окна одинаковые.
В окне, кстати, не видно title, только копипастом.

Но в любом случае это не общий случай, его ко всем потенциалам не подвяжешь.

31

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

В окне, кстати, не видно title, только копипастом.

В смысле?

Но в любом случае это не общий случай, его ко всем потенциалам не подвяжешь.

Ну вот я о чем и говорю, что использование IE не панацея.
А в связи популяризации такого вида защиты, я себе внес:

if InStr(ResponseText, "DDoS protection by CloudFlare")
 ....

32

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

В смысле?

В смысле текст не влезает в экран, а прокрутка в окне отсутствует.

Ну вот я о чем и говорю, что использование IE не панацея.

Я понимаю, но в любом случае охватывает больше вариантов. А сайты с такой заглушкой мне попадались от силы пару раз.

33 (изменено: Malcev, 2016-09-13 16:25:08)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

В смысле текст не влезает в экран, а прокрутка в окне отсутствует.

Если мы говорим про окно браузера, то у меня все влезает и прокрутка имеется.
Если про WinHttp, то там же получаем название простым Regexом.
Может я один такой невезучий, но иногда(очень редко) у меня IE подвисает так, что помогает только рестарт компьютера иначе просто отказывается загружать какие-либо страницы.

34

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Да про MsgBox речь, уже не важно.
Про IE - это о работе скрипта или вообще? Лично я давным давно обзавёлся кнопкой убийства зависших процессов:

taskkill.exe /f /fi "status eq not responding"

35

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Про IE. Его перегружает так, что не помогает убийство процесса.
Только рестарт компьютера.

36

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Flasher потестировал ваш скрит и должен сказать, что работает он отлично!
Malcev думаю это не так существенно, сайтов с заглушкой не так много, хотя некоторые сайты выдавали страницу ввода капчи.
Flasher скрипт отличный, но допилить я его сам не смогу, вот некоторые пожелания:
* в файле ярлыка путь к иконке просто имя иконки (они будут лежать в той же папке)
* название ярклыка в формате домен.нет(без www.) "пробел" заголовок страницы (пробел и заголовок если есть)
* в конец имени ярлыка нужно добавить " @favicon + " (вместе с пробелами)
* длина имени ярлыка меньше 192 (можно урезать заголовок страницы)
* если иконка есть для этого сайта, то не пересохранять (ярлыков может быть несколько, а иконка у них должна быть одна)
* можно еще сделать какой-нибудь поп-ап что все ОК или неОК по работе скрипта
* обработка параметров с которыми запускается скрипт, если в параметре файл url с именем заданного формата и иконка к нему, то ничего не делать, а если нет, то все перезаписать, а если в параметре адрес сайта, то сделать ярлык и иконку к нему, если запуск без параметров, то попробовать взять из буфера адрес.
Не могу придумать, как сохранять прямо из браузера (у меня хром), какие горячие клавиши или еще что-то такое, кнопку в меню добавить, чтобы нажимать ее, или перетаскивать адрес туда.
И еще замечание, у меня папка и в ней очень много файлов url и других, которые надо переделать, можно сделать так, чтобы если в параметре много файлов, то делать их по-очереди, если это не слишком сложно.

37

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium пишет:

в файле ярлыка путь к иконке просто имя иконки

А разве Проводник отобразит иконку, если не писать путь?

upsi_daezium пишет:

"пробел" заголовок страницы ... в конец имени ярлыка нужно добавить " @favicon + " (вместе с пробелами)

Не стыкуется с:

upsi_daezium пишет:

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


upsi_daezium пишет:

длина имени ярлыка меньше 192 (можно урезать заголовок страницы)

ОК. А смысл? На экран не поместится?

upsi_daezium пишет:

Не могу придумать, как сохранять прямо из браузера (у меня хром), какие горячие клавиши или еще что-то такое, кнопку в меню добавить, чтобы нажимать ее, или перетаскивать адрес туда.

О, не. Это не сюда. См. расширение либо такой способ.

upsi_daezium пишет:

И еще замечание, у меня папка и в ней очень много файлов url и других, которые надо переделать, можно сделать так, чтобы если в параметре много файлов, то делать их по-очереди, если это не слишком сложно.

Дело не в сложности, а в целесообразности. Мухи от котлет надо как-то отделять. Одно дело создавать ярлыки по ссылкам, другое дело их (ярлыки) редактировать. Лучше иметь отдельные скрипты. Т.е. нужно создать отдельную тему (лучше сразу в WSH, если устраивает) с запросом о групповом редактировании.

38 (изменено: Malcev, 2016-09-14 12:38:29)

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Не могу придумать, как сохранять прямо из браузера (у меня хром), какие горячие клавиши или еще что-то такое, кнопку в меню добавить, чтобы нажимать ее, или перетаскивать адрес туда.

Если вам хочется сохранить заголовок и favicon страницы на которой в данный момент находитесь, то тут я вижу 3 варианта.
1) Если важен хром, то запускать его через Selenium и оттуда уже все получать.
http://forum.script-coding.com/viewtopic.php?id=11704
2) Пользоваться IE.
http://forum.script-coding.com/viewtopi … 909#p85909
3) Через буффер обмена:
http://forum.script-coding.com/viewtopic.php?id=9515

39

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Flasher спасибо за расширение. Я придумал делать через программу DropIt, хочу чтобы при перетаскивании на нее ссылки, она запускала ваш скрипт с этим параметром.
По поводу отображения иконки, я придумал ввести переменную среды %FaviconFolder%\имяИконки.ico Скрипт может сохранять с таким путем.
Имя иконки должно быть "сайт.ком @favicon" (оно же и  в ярлыке с путем %FaviconFolder%)
Имя ярлыка "сайт.ком заголовок_страницы @ + ". Заголовок может быть очень длинным, а длина имени файла ограничена в системе, поэтому я и ставил ограничение в 192 символа.

Ок, лучше сейчас сосредоточится именно на создании таких ярлыков. Тогда можно сделать так, чтобы при запуске скрипта без параметров, он пытался получить адрес из буфера обмена? И можете добивать комменты в скрипт, чтобы я мог как-то разобраться, что он делает на каком этапе?
Вообще, спасибо вам за такой фидбэк и за все что вы делаете)

40

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev спасибо, но кам как-то сложно, пока попробуем так решить вопрос. Я может потом напишу АНК скрипт, который будет использовать скрипт Flasherа, горячая клавиша при копировании в буфер ссылки.

41

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium пишет:

Я придумал делать через программу DropIt, хочу чтобы при перетаскивании на нее ссылки, она запускала ваш скрипт с этим параметром.

DropIt работает с файлами. Перетягивание на него пути из браузера ни к чему не приведёт. Проще на тулбар ТС перетянуть скрипт и очистить поле "Путь запуска:", чтобы ярлык создавался в активной папке.
Длина имени ограничена всяко не 192-ю символами, а 32767 в юникодной функции с префиксом \\?\, что у меня учтено с вопросом о необходимости обрезки до MAX_PATH (259).
Скрипт без параметров и так получает адрес из буфера (в шапке же написано).
С комментами и именованием ближе к вечеру. Мне надо бежать.

42

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev спасибо, но кам как-то сложно, пока попробуем так решить вопрос. Я может потом напишу АНК скрипт, который будет использовать скрипт Flasherа,

Вариант не самый лучший.
Могут быть баги, так как кеш и кукисы будут не общие.

43

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Malcev, а как бы сделали вы?

44

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

Я в 38 посту ответил и привёл ссылки.
Selenium не так сложен - там вполне нормальная справка.

45

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

upsi_daezium
Вчера слишком поздно пришёл, не до того было. Сейчас выложил код. Там и продолжим по решению в рамках VBS.

46

Re: AHK: Скрипт скачивания favicon и title для сохраненных ярлыков .url

ок