Скрипт AutoHotkey для поиска в Google
Цитата: Имир от 24.10.2025, 10:14Добрый день! Есть скрипт
AutoHotkeyдля поиска вf1на клик по иконке скрипта в трее?#NoEnv SendMode Input SetWorkingDir %A_ScriptDir% f1::GoogleSelection() GoogleSelection() { searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% } GetSelectedText() { tmp := ClipboardAll Clipboard := "" Send, {CtrlDown}c{CtrlUp} ClipWait, 0, false res := Clipboard Clipboard := tmp return res }
Добрый день! Есть скрипт СкопированоAutoHotkey для поиска в СкопированоGoogle выделенного текста. Подскажите, пожалуйста, как заменить горячую клавишу Скопированоf1 на клик по иконке скрипта в трее?
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
f1::GoogleSelection()
GoogleSelection() {
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
}
GetSelectedText() {
tmp := ClipboardAll
Clipboard := ""
Send, {CtrlDown}c{CtrlUp}
ClipWait, 0, false
res := Clipboard
Clipboard := tmp
return res
}
Цитата: Mikhail от 24.10.2025, 10:52Имир, Привет.
#NoEnv #Persistent SendMode Input SetWorkingDir %A_ScriptDir% SetTimer, TrackActive, 200 Menu, Tray, Add, Поиск в Google, GoogleSelection Menu, Tray, Default, Поиск в Google Menu, Tray, Click, 1 return TrackActive: WinGet, gLastWinId, ID, A return GoogleSelection: global gLastWinId if (gLastWinId) { WinActivate, ahk_id %gLastWinId% Sleep, 100 } searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% return GetSelectedText() { tmp := ClipboardAll Clipboard := "" Send, {CtrlDown}c{CtrlUp} ClipWait, 0, false res := Clipboard Clipboard := tmp return res }
Имир, Привет.
#NoEnv
#Persistent
SendMode Input
SetWorkingDir %A_ScriptDir%
SetTimer, TrackActive, 200
Menu, Tray, Add, Поиск в Google, GoogleSelection
Menu, Tray, Default, Поиск в Google
Menu, Tray, Click, 1
return
TrackActive:
WinGet, gLastWinId, ID, A
return
GoogleSelection:
global gLastWinId
if (gLastWinId) {
WinActivate, ahk_id %gLastWinId%
Sleep, 100
}
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
return
GetSelectedText() {
tmp := ClipboardAll
Clipboard := ""
Send, {CtrlDown}c{CtrlUp}
ClipWait, 0, false
res := Clipboard
Clipboard := tmp
return res
}
Цитата: Имир от 29.10.2025, 16:17Mikhail, добрый день! Спасибо большое! Работает, но иногда, работать отказывается. Пока не пойму, почему.
Mikhail, добрый день! Спасибо большое! Работает, но иногда, работать отказывается. Пока не пойму, почему.
Цитата: Имир от 22.03.2026, 17:56Mikhail, добрый день! Подскажите, пожалуйста, как сделать так, чтобы при выделении файла и нажатии клавиши
F1копировалось название этого файла, а не путь к нему?#NoEnv SendMode Input SetWorkingDir %A_ScriptDir% f1::GoogleSelection() GoogleSelection() { searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% } GetSelectedText() { tmp := ClipboardAll Clipboard := "" Send, {CtrlDown}c{CtrlUp} ClipWait, 0, false res := Clipboard Clipboard := tmp return res }
Mikhail, добрый день! Подскажите, пожалуйста, как сделать так, чтобы при выделении файла и нажатии клавиши СкопированоF1 копировалось название этого файла, а не путь к нему?
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
f1::GoogleSelection()
GoogleSelection() {
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
}
GetSelectedText() {
tmp := ClipboardAll
Clipboard := ""
Send, {CtrlDown}c{CtrlUp}
ClipWait, 0, false
res := Clipboard
Clipboard := tmp
return res
}
Цитата: Mikhail от 22.03.2026, 18:06Имир, Привет.
Просто не дописал:
SplitPath, res, , , , nameNoExt(переменая)
return nameNoExtПолынй код:
#NoEnv SendMode Input SetWorkingDir %A_ScriptDir% f1::GoogleSelection() GoogleSelection() { searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% } GetSelectedText() { tmp := ClipboardAll Clipboard := "" Send, {CtrlDown}c{CtrlUp} ClipWait, 0, false res := Clipboard Clipboard := tmp SplitPath, res, , , , nameNoExt return nameNoExt }
Имир, Привет.
Просто не дописал:
СкопированоSplitPath, res, , , , nameNoExt(переменая)
Скопированоreturn nameNoExt
Полынй код:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
f1::GoogleSelection()
GoogleSelection() {
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
}
GetSelectedText() {
tmp := ClipboardAll
Clipboard := ""
Send, {CtrlDown}c{CtrlUp}
ClipWait, 0, false
res := Clipboard
Clipboard := tmp
SplitPath, res, , , , nameNoExt
return nameNoExt
}
Цитата: Имир от 29.03.2026, 11:36Mikhail, с файлами все работает идеально, но теперь при выделении текста, где есть слэш, копируется только часть текста после слэша
Mikhail, с файлами все работает идеально, но теперь при выделении текста, где есть слэш, копируется только часть текста после слэша
Цитата: Mikhail от 29.03.2026, 11:40Имир, Пример текста скинь, все тыкаю, все нормально копирует...
Имир, Пример текста скинь, все тыкаю, все нормально копирует...
Цитата: Имир от 29.03.2026, 11:54Mikhail, например, если выделить вот такой текст
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorerи нажать f1, то будет искаться толькоExplorer
Mikhail, например, если выделить вот такой текст СкопированоHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer и нажать f1, то будет искаться только СкопированоExplorer
Цитата: Mikhail от 29.03.2026, 13:22Имир, Теперь вроде норм должно.
#NoEnv SendMode Input SetWorkingDir %A_ScriptDir% f1::GoogleSelection() GoogleSelection() { searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% } GetSelectedTextOrFilename() { tmp := ClipboardAll Clipboard := "" Send, ^c ClipWait, 0.2 if (Clipboard ~= "m)^[A-Z]:\\") { file := Clipboard SplitPath, file, name, dir, ext, nameNoExt Clipboard := tmp return nameNoExt } text := Clipboard Clipboard := tmp return text } GetSelectedText() { return GetSelectedTextOrFilename() }
Имир, Теперь вроде норм должно.
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
f1::GoogleSelection()
GoogleSelection() {
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
}
GetSelectedTextOrFilename() {
tmp := ClipboardAll
Clipboard := ""
Send, ^c
ClipWait, 0.2
if (Clipboard ~= "m)^[A-Z]:\\") {
file := Clipboard
SplitPath, file, name, dir, ext, nameNoExt
Clipboard := tmp
return nameNoExt
}
text := Clipboard
Clipboard := tmp
return text
}
GetSelectedText() {
return GetSelectedTextOrFilename()
}
Цитата: Андрей от 30.03.2026, 09:33Добрый день!
У меня при нажатии колесика мыши происходит вставка Clipboard.MButton:: Send ^{vk56} ; Ctrl+V (+{Ins}) sleep 600 returnПодскажите, как подружить два скрипта, чтобы при одинарном нажатии срабатывал мой скрипт, а при долгом удержании запускался поиск Google?
Добрый день!
У меня при нажатии колесика мыши происходит вставка Clipboard.
MButton::
Send ^{vk56} ; Ctrl+V (+{Ins})
sleep 600
return
Подскажите, как подружить два скрипта, чтобы при одинарном нажатии срабатывал мой скрипт, а при долгом удержании запускался поиск Google?
Цитата: Mikhail от 30.03.2026, 13:29Анлрей, Привет.
Держи:
HoldTime в коде, это время через которое срабатывает google поиск функция, 400, это в мс, если дольше 400 зажата СРМ, будет искать, однократное нажатие, буфер.#NoEnv SendMode Input SetWorkingDir %A_ScriptDir% HoldTime := 400 isHeld := false MButton:: isHeld := false SetTimer, CheckHold, -%HoldTime% return MButton Up:: if (isHeld) { return } Send ^v return CheckHold: if GetKeyState("MButton", "P") { isHeld := true GoogleSelection() } return GoogleSelection() { searchQuery := GetSelectedText() if (!searchQuery) { Run, www.google.com return } address := Format("www.google.com/search?q={}", searchQuery) Run, %address% } GetSelectedTextOrFilename() { tmp := ClipboardAll Clipboard := "" Send, ^c ClipWait, 0.2 if (Clipboard ~= "m)^[A-Z]:\\") { file := Clipboard SplitPath, file, name, dir, ext, nameNoExt Clipboard := tmp return nameNoExt } text := Clipboard Clipboard := tmp return text } GetSelectedText() { return GetSelectedTextOrFilename() }
Анлрей, Привет.
Держи:
HoldTime в коде, это время через которое срабатывает google поиск функция, 400, это в мс, если дольше 400 зажата СРМ, будет искать, однократное нажатие, буфер.
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
HoldTime := 400
isHeld := false
MButton::
isHeld := false
SetTimer, CheckHold, -%HoldTime%
return
MButton Up::
if (isHeld) {
return
}
Send ^v
return
CheckHold:
if GetKeyState("MButton", "P") {
isHeld := true
GoogleSelection()
}
return
GoogleSelection() {
searchQuery := GetSelectedText()
if (!searchQuery) {
Run, www.google.com
return
}
address := Format("www.google.com/search?q={}", searchQuery)
Run, %address%
}
GetSelectedTextOrFilename() {
tmp := ClipboardAll
Clipboard := ""
Send, ^c
ClipWait, 0.2
if (Clipboard ~= "m)^[A-Z]:\\") {
file := Clipboard
SplitPath, file, name, dir, ext, nameNoExt
Clipboard := tmp
return nameNoExt
}
text := Clipboard
Clipboard := tmp
return text
}
GetSelectedText() {
return GetSelectedTextOrFilename()
}