Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Поиск по картинке в Яндекс или Гугл через контекстное меню проводника Windows (http://forum.oszone.net/showthread.php?t=321362)

atatat111 02-12-2016 11:08 2692271

Поиск по картинке в Яндекс или Гугл через контекстное меню проводника Windows
 
Помоги, пожалуйста, как добавить пункт в контекстное меню для фотографий в проводнике Windows поиск по картинке в Яндекс или Гугл?
Как например сделан в хроме поиск по картинке в Гугл.

https://yandex.ru/images/
https://www.google.ru/imghp

Vadikan 02-12-2016 23:09 2692453

Переношу в скрипты, пусть ломают голову, может, веб запрос пошиком сервису придумают...

atatat111 04-12-2016 18:00 2692868

Vadikan, Спасибо!

Sisin 22-03-2017 16:43 2722121

Up 2017

Sisin 09-04-2018 14:46 2807880

Up 2018

Никто не нашел решения случаем?

Нашел такие скрипты:
Установить пункт контекстного меню.cmd
Код:

@set @x=0; /*
@echo off
SetLocal EnableExtensions DisableDelayedExpansion
set "live=%USERPROFILE%"

REG ADD "HKCR\AllFilesystemObjects\Shell" /f >nul 2>&1 || if "%~2" neq "Admin" (
  echo Для установки надстройки требуются повышенные права.
  cscript.exe //nologo //e:jscript "%~f0"& Exit /B) else (echo Вы не обладаете необходимыми привилегиями& pause& Exit /B
)

:begin
cls
echo. Введите цифру и нажмите { ENTER }
echo.
echo. Установить:
echo.
echo 1. Поиск в Google
echo 2. Поиск в Yandex
echo.
set /p "ch=Ваш выбор: "

::Первая часть VBS
for /f "delims=[]" %%N in ('find /n ":UnpackVBS" ^<"%~f0"') do set /a num=%%N
more +%num% >"%live%\KozaN.vbs" <"%~f0"

::Вторая часть VBS
if "%ch%"=="1" (
  set VerbName=Найти в "Google"
  >> "%live%\KozaN.vbs" echo CreateObject^("WScript.Shell"^).Run "explorer ""https://google.ru/search?ie=UTF-8&hl=ru&q=" ^& Arg ^& """"
  REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath"  /v Icon  /t REG_SZ /d "%USERPROFILE%\google.ico" /f
  1>nul copy "%~dp0google.ico" "%USERPROFILE%" /y
)

if "%ch%"=="2" (
  set VerbName=Найти в "Яндекс"
  >> "%live%\KozaN.vbs" echo CreateObject^("WScript.Shell"^).Run "explorer ""http://yandex.ru/yandsearch?text=" ^& Arg ^& """"
  REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath"  /v Icon  /t REG_SZ /d "%USERPROFILE%\yandex.ico" /f
  1>nul copy "%~dp0yandex.ico" "%USERPROFILE%" /y
)

if not Defined VerbName goto begin

REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath"  /ve  /t REG_SZ /d "%VerbName%" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath\command" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath\command" /ve /d "wscript.exe //nologo \"%live%\KozaN.vbs\" \"%%1\"" /f

echo.
echo Установка завершена.
echo.
echo "SafeZone.cc"
echo.
pause
Exit /B

*/try {
  var ShellApp = new ActiveXObject('Shell.Application');
  ShellApp.ShellExecute ('cmd.exe', '/c ""' + WScript.ScriptFullName + '" "" "Admin"','','runas',1);
} catch (e) { }/*

:UnpackVBS
  On Error Resume Next
  if WScript.Arguments.Count = 0 then WScript.Quit
  Arg = WScript.Arguments(0)
  Arg = Mid(Arg, InStrRev(Arg, "\") + 1)
  Arg = Replace(Arg, " ", "%20")
  set ShellApp = CreateObject("Shell.Application")'*/


Удаление пункта контексного меню.bat
Код:

@set @x=0; /*
@echo off
SetLocal EnableExtensions DisableDelayedExpansion

echo Удалить пункт котексного меню поиска в Яндекс/Google ?
echo.

:begin

echo 1. Да,удалить (введите цифру 1 и нажмите клавишу Enter)
echo 2. Нет,не удалять (введите цифру 2 и нажмите клавишу Enter)
echo.
set /p "ch=Ваш выбор: "
echo.
echo.

if "%ch%"=="1" (REG DELETE "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /f || if "%~2" neq "Admin" (
  echo Для выполнения операции требуются повышенные права.
  cscript.exe //nologo //e:jscript "%~f0"& Exit /B) else (echo Вы не обладаете необходимыми привилегиями& pause& Exit /B
)

if exist "%USERPROFILE%\google.ico" (del "%USERPROFILE%\google.ico" /q) else del "%USERPROFILE%\yandex.ico" /q
cls
echo.
echo Удаление завершено.
echo Для выхода нажмите клавишу Enter
echo.
echo "SafeZone.cc"
echo.
pause > nul
Exit /B
)

if "%ch%"=="2" (echo Операция отменена,для выхода нажмите клавишу Enter
pause > nul
exit /b
)

if not Defined VerbName (echo Неверный выбор!
echo.
echo Выберите один из пунктов:
echo.
 goto begin)

*/try {
  var ShellApp = new ActiveXObject('Shell.Application');
  ShellApp.ShellExecute ('cmd.exe', '/c ""' + WScript.ScriptFullName + '" "" "Admin"','','runas',1);
} catch (e) { }/*

:UnpackVBS
  On Error Resume Next
  if WScript.Arguments.Count = 0 then WScript.Quit
  Arg = WScript.Arguments(0)
  Arg = Mid(Arg, InStrRev(Arg, "\") + 1)
  Arg = Replace(Arg, " ", "%20")
  set ShellApp = CreateObject("Shell.Application")'*/



Но они добавляют в контекстное меню только поиск в Яндекс и Google. Может кто сообразит как переделать их под Яндекс.Картинки??

Serguei Kouzmine 10-04-2018 03:25 2808018

Вложений: 1
старый пример (рабоает)
https://www.linuxquestions.org/quest...scripts-36719/

Код:

#!/usr/bin/env python
import sys
filePath = sys.argv[-1]

import requests

searchUrl = 'http://www.google.com/searchbyimage/upload'
multipart = {'encoded_image': (filePath, open(filePath, 'rb')), 'image_content': ''}
response = requests.post(searchUrl, files=multipart, allow_redirects=False)
fetchUrl = response.headers['Location']
print fetchUrl
import subprocess
subprocess.call([r'/opt/firefox/firefox', fetchUrl])

Код:

./test.py ~/Desktop/butterfly.jpg
новая документация -
https://developers.google.com/custom...ew#data_format

Serguei Kouzmine 10-04-2018 03:27 2808019

Вложений: 1
вот скриншот

Iska 10-04-2018 06:59 2808025

Можно и без Python'а. На PowerShell: powershell - Script to use Google Image Search with local image as input - Stack Overflow, над результатом функции Get-GoogleImageSearchUrl тупо исполняем (New-Object -ComObject 'Shell.Application').ShellExecute(…) передавая обработку на откуп системе. Теоретически (не проверялось) может и WSH вдруг зайти.

Sisin 10-04-2018 10:13 2808054

А как тоже самое, но для Яндекс.Картинок сделать??

Serguei Kouzmine 10-04-2018 17:47 2808159

кстати интересно что если jpg брать из
Код:

$imageFilePath = "$($env:USERPROFILE)/Pictures/butterfly.jpg"
то возникает еще
Код:

The process cannot access the
file 'C:\Users\Serguei\Pictures\butterfly.jpg' because it is being used by another process.

-

Iska 10-04-2018 17:55 2808160

Serguei Kouzmine, и какой процесс его там «держит» — не смотрели? У меня такой проблемы не возникает.

Цитата:

Цитата Sisin
А как тоже самое, но для Яндекс.Картинок сделать?? »

По-хорошему, надо смотреть в код всяческих дополнений для Firefox типа «Поиск по картинке» для варианта с Яндексом, и пробовать адаптировать под PowerShell.

Sisin 10-04-2018 23:21 2808197

Цитата:

Цитата Iska
По-хорошему, надо смотреть в код всяческих дополнений для Firefox типа «Поиск по картинке» для варианта с Яндексом, и пробовать адаптировать под PowerShell. »

В Opera 12 все решается добавлением в контекстное меню:
Код:

Item, "Искать на Яндекс.Картинках" = Copy image address, -2,,, "yk" & Go to page, "javascript:void(window.open('http://yandex.ru/images/search?img_url=' + encodeURIComponent('%c') + '&rpt=imageview'));"

Iska 10-04-2018 23:49 2808200

Цитата:

Цитата Sisin
В Opera 12 все решается добавлением в контекстное меню: »

Sisin, это Вы так шутите, да? И как же при этом а) содержимое б) локального файла попадёт на сервер?

Sisin 11-04-2018 10:17 2808241

Цитата:

Цитата Iska
Sisin, это Вы так шутите, да? И как же при этом а) содержимое б) локального файла попадёт на сервер? »

Это не локальный файл, а картинка на сайте...

Iska 11-04-2018 10:42 2808246

Sisin, в том-то и дело. Передаётся банальный Url, но нам-то нужно совсем, совсем другое.

Patroklos 11-04-2018 12:14 2808268

Я понятия не имею зачем может понадобиться поиск из експлорера но вот за три минуты нагуглил поиск по картинкам из експлорера вгугле. Это то что надо?
https://github.com/apsun/GoogleImageShell

Sisin 11-04-2018 12:58 2808275

Цитата:

Цитата Patroklos
Я понятия не имею зачем может понадобиться поиск из експлорера но вот за три минуты нагуглил поиск по картинкам из експлорера вгугле. Это то что надо?
https://github.com/apsun/GoogleImageShell »

Это то, что на предыдущей странице...

PS: Я тоже гуглить умею)


Время: 03:19.

Время: 03:19.
© OSzone.net 2001-