1 (изменено: OlegSmirnov, 2020-08-13 07:57:08)

Тема: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Здравствуйте.
Нашел такую тему - в отделе "скриптов и идей":
http://forum.script-coding.com/viewtopic.php?id=4492
Этот скрипт использует сервис google-перевода.

В google - есть еще сервис поиска по картинке:
https://www.google.ru/imghp

Как в данном скрипте - заменить один сервис google - на другой ?
При том же двойном нажатии Ctrl + C  - открывается страница в google chrome - с результатами поиска https://www.google.ru/imghp по картинке - адрес которой находится в буфере обмена на момент срабатывания горячей клавиши.

2

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

OlegSmirnov пишет:

Как в данном скрипте - заменить один сервис google - на другой ?

В данном скрипте никак, надо новый писать.

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

3

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

OlegSmirnov, оформите ссылки тегом "url"!

4

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Отправляете multipart/form-data запрос с вашей картинкой на https://images.google.com/searchbyimage/upload.
После чего получете ссылку в location response header.

5 (изменено: OlegSmirnov, 2020-08-14 04:41:23)

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Я вот так делаю для отправки multipart/form-data на сайт гугла:

;Создание и настройка объекта для построения данных формы
form			:= ComObjGet("script:file:webFormDataBuilder.wsc")
form.method		:= "POST"
form.action		:= "https://images.google.com/searchbyimage/upload"
form.enctype	:= "multipart/form-data"

;Загрузка тела файла в буфер
fileName := "картинка.jpg"
;Открытие файла на чтение
file := FileOpen(fileName,"r")
if !IsObject(file)
{
    MsgBox Can't open "%FileName%" for reading.
    return
}

;Добавление тела файла в запрос
form.addFileField("file", "картинка.jpg", file.Read())
file.Close()

;Подготовка запроса к сервису
whr	:= ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.open(form.method, form.action, false)
whr.setRequestHeader("Content-Type",form.contentType)
whr.send(form.build())

;Загрузка объекта HTMLDocument
document := ComObjCreate("htmlfile")
;Установка режима совместимости
document.writeln("<meta http-equiv=""x-ua-compatible"" content=""IE=Edge""/>")
;Получение объекта JSON для разбора JSON данных
JSON := document.parentWindow.JSON

try {
    url := JSON.parse(whr.responseText).url
	ComObjCreate("WScript.Shell").Run(url)
} catch e {
	MsgBox JSON parsing failed !
}

Но что-то вот - никак.
Пишет ошибку - JSON parsing failed!

Post's attachments

файлы.rar 14.6 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

6

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

https://www.autohotkey.com/boards/viewtopic.php?t=7647

7

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

По ссылке приведен вот этот скрипт:
При запуске - выдает ошибку.

objParam := { "btSubmit": "Upload It!"
            , "adult": "no"
            , "mode": "local"
            , "forumurl": "http://postimage.org/"
            , "upload[]": ["2.jpg", "1.jpg"]
            , "um": "computer"
            , "MAX_FILE_SIZE": 16777216
            , "optsize": 0 }
CreateFormData(postData, hdr_ContentType, objParam)

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("POST", "http://postimage.org/", true)
whr.SetRequestHeader("Content-Type", hdr_ContentType)
whr.SetRequestHeader("Referer", "http://postimage.org/")
whr.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko")
whr.Option(6) := False ; No auto redirect
whr.Send(postData)
whr.WaitForResponse()
Run, % whr.GetResponseHeader("Location")
return

8

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Какую?

9 (изменено: OlegSmirnov, 2020-08-16 00:15:45)

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Вот такую ошибку выводит:

Post's attachments

скрин.jpg
скрин.jpg 114.74 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

10

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

У вас идет обращение к функции, которая не присутствует в скрипте.

11

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Malcev, так этот код приведен по ссылке.
Откуда взять эту функцию (которой сейчас нет в скрипте) ?

12

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

По ссылке, которую я привел всё написано.

13

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Вот что там написано:


Исходная
версия Модифицированная SKAN (не требует BinArr.ahk)

Функции:
CreateFormData (ByRef retData, ByRef retHeader, objParam)
retData - (out) Данные, используемые для HTTP POST.
retHeader - (out) заголовок Content-Type, используемый для HTTP POST.
objParam - (in) Объект определяет параметры формы. Чтобы указать файлы, используйте в качестве значения массив.
Пример
CreateFormData_WinInet (ByRef retData, ByRef retHeader, objParam)
Используется для HTTPRequest () VxE.

Пример:
Загрузите несколько изображений на сайт postimage.org
Журнал изменений:
1.30 / 2019-01-13 - Параметры файла теперь помещаются в конец retData.
1.20 / 2016-06-17 - Добавлен CreateFormData_WinInet (), который можно использовать для HTTPRequest () VxE.
1.10 / 2015-06-23 - Исправлена ошибка
1.00 / 2015-05-14

14

Re: AHK: Замена google-переводчика на google-поиск картинок в скрипте

Вы интернетом пользоваться умеете?
Там же ссылки.

Исходная
версия Модифицированная SKAN (не требует BinArr.ahk)