Автоматическое копирование выделенного текста
Цитата: shim от 12.01.2025, 15:33Цитата: Mikhail от 08.01.2025, 14:42Flamer, Этот попробуй, задержки подправил, вроде шустро
[spoiler title="Код"]Menu, Tray, NoStandardMenu, Tray, Add, Отключить скрипт, ToggleScriptMenu, Tray, Add, Выход, ExitScriptMenu, Tray, Icon, Shell32.dll, 21 ; ИКОНКАscriptEnabled := true~LButton::if scriptEnabled {Loop{Sleep 10GetKeyState, LButtonState, LButton, Pif LButtonState = UbreakMouseGetPos x0, y0Loop{Sleep 20GetKeyState keystate, LButtonIfEqual keystate, U, {MouseGetPos x, ybreak}}if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5){Send ^cClipWait 1, 1}return}}returnToggleScript:scriptEnabled := !scriptEnabledif scriptEnabled {Menu, Tray, Rename, Включить скрипт, Отключить скрипт} else {Menu, Tray, Rename, Отключить скрипт, Включить скрипт}returnExitScript:ExitAppreturnMenu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp returnMenu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp return[/spoiler]
Добрый день!
как запретить выполнение скрипта в определённом окне (к примеру в окне Сохранение в Cent Browser)?
Цитата: Mikhail от 08.01.2025, 14:42Flamer, Этот попробуй, задержки подправил, вроде шустро
КодMenu, Tray, NoStandardMenu, Tray, Add, Отключить скрипт, ToggleScriptMenu, Tray, Add, Выход, ExitScriptMenu, Tray, Icon, Shell32.dll, 21 ; ИКОНКАscriptEnabled := true~LButton::if scriptEnabled {Loop{Sleep 10GetKeyState, LButtonState, LButton, Pif LButtonState = UbreakMouseGetPos x0, y0Loop{Sleep 20GetKeyState keystate, LButtonIfEqual keystate, U, {MouseGetPos x, ybreak}}if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5){Send ^cClipWait 1, 1}return}}returnToggleScript:scriptEnabled := !scriptEnabledif scriptEnabled {Menu, Tray, Rename, Включить скрипт, Отключить скрипт} else {Menu, Tray, Rename, Отключить скрипт, Включить скрипт}returnExitScript:ExitAppreturnMenu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp returnMenu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp return
Добрый день!
как запретить выполнение скрипта в определённом окне (к примеру в окне Сохранение в Cent Browser)?
Цитата: Mikhail от 12.01.2025, 15:47shim, Привет.
Если только ты будешь знать класс окна, класс окна можно узнать через windows spy у ahk и вписать в код, я там пометил.
[spoiler title="Код"]SetTitleMatchMode, 2 GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота Menu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { IfWinNotActive, ahk_group ExcludedWindows { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp return[/spoiler]
shim, Привет.
Если только ты будешь знать класс окна, класс окна можно узнать через windows spy у ahk и вписать в код, я там пометил.
SetTitleMatchMode, 2
GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота
Menu, Tray, NoStandard
Menu, Tray, Add, Отключить скрипт, ToggleScript
Menu, Tray, Add, Выход, ExitScript
Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА
scriptEnabled := true
~LButton::
if scriptEnabled
{
IfWinNotActive, ahk_group ExcludedWindows
{
Loop
{
Sleep 10
GetKeyState, LButtonState, LButton, P
if LButtonState = U
break
MouseGetPos x0, y0
Loop
{
Sleep 20
GetKeyState keystate, LButton
IfEqual keystate, U, {
MouseGetPos x, y
break
}
}
if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5)
{
Send ^c
ClipWait 1, 1
}
return
}
}
}
return
ToggleScript:
scriptEnabled := !scriptEnabled
if scriptEnabled {
Menu, Tray, Rename, Включить скрипт, Отключить скрипт
} else {
Menu, Tray, Rename, Отключить скрипт, Включить скрипт
}
return
ExitScript:
ExitApp
return
Цитата: shim от 12.01.2025, 17:40Цитата: Mikhail от 12.01.2025, 15:47shim, Привет.
Если только ты будешь знать класс окна, класс окна можно узнать через windows spy у ahk и вписать в код, я там пометил.
[spoiler title="Код"]SetTitleMatchMode, 2GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнотаMenu, Tray, NoStandardMenu, Tray, Add, Отключить скрипт, ToggleScriptMenu, Tray, Add, Выход, ExitScriptMenu, Tray, Icon, Shell32.dll, 21 ; ИКОНКАscriptEnabled := true~LButton::if scriptEnabled{IfWinNotActive, ahk_group ExcludedWindows{Loop{Sleep 10GetKeyState, LButtonState, LButton, Pif LButtonState = UbreakMouseGetPos x0, y0Loop{Sleep 20GetKeyState keystate, LButtonIfEqual keystate, U, {MouseGetPos x, ybreak}}if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5){Send ^cClipWait 1, 1}return}}}returnToggleScript:scriptEnabled := !scriptEnabledif scriptEnabled {Menu, Tray, Rename, Включить скрипт, Отключить скрипт} else {Menu, Tray, Rename, Отключить скрипт, Включить скрипт}returnExitScript:ExitAppreturnSetTitleMatchMode, 2 GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота Menu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { IfWinNotActive, ahk_group ExcludedWindows { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp returnSetTitleMatchMode, 2 GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота Menu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { IfWinNotActive, ahk_group ExcludedWindows { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp return[/spoiler]
а как перечислить несколько ahk_class ?
Цитата: Mikhail от 12.01.2025, 15:47shim, Привет.
Если только ты будешь знать класс окна, класс окна можно узнать через windows spy у ahk и вписать в код, я там пометил.
КодSetTitleMatchMode, 2GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнотаMenu, Tray, NoStandardMenu, Tray, Add, Отключить скрипт, ToggleScriptMenu, Tray, Add, Выход, ExitScriptMenu, Tray, Icon, Shell32.dll, 21 ; ИКОНКАscriptEnabled := true~LButton::if scriptEnabled{IfWinNotActive, ahk_group ExcludedWindows{Loop{Sleep 10GetKeyState, LButtonState, LButton, Pif LButtonState = UbreakMouseGetPos x0, y0Loop{Sleep 20GetKeyState keystate, LButtonIfEqual keystate, U, {MouseGetPos x, ybreak}}if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5){Send ^cClipWait 1, 1}return}}}returnToggleScript:scriptEnabled := !scriptEnabledif scriptEnabled {Menu, Tray, Rename, Включить скрипт, Отключить скрипт} else {Menu, Tray, Rename, Отключить скрипт, Включить скрипт}returnExitScript:ExitAppreturnSetTitleMatchMode, 2 GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота Menu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { IfWinNotActive, ahk_group ExcludedWindows { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp returnSetTitleMatchMode, 2 GroupAdd, ExcludedWindows, ahk_class Notepad ; пример класс окна блокнота Menu, Tray, NoStandard Menu, Tray, Add, Отключить скрипт, ToggleScript Menu, Tray, Add, Выход, ExitScript Menu, Tray, Icon, Shell32.dll, 21 ; ИКОНКА scriptEnabled := true ~LButton:: if scriptEnabled { IfWinNotActive, ahk_group ExcludedWindows { Loop { Sleep 10 GetKeyState, LButtonState, LButton, P if LButtonState = U break MouseGetPos x0, y0 Loop { Sleep 20 GetKeyState keystate, LButton IfEqual keystate, U, { MouseGetPos x, y break } } if (x-x0 > 5 or x-x0 < -5 или y-y0 > 5 или y-y0 < -5) { Send ^c ClipWait 1, 1 } return } } } return ToggleScript: scriptEnabled := !scriptEnabled if scriptEnabled { Menu, Tray, Rename, Включить скрипт, Отключить скрипт } else { Menu, Tray, Rename, Отключить скрипт, Включить скрипт } return ExitScript: ExitApp return
а как перечислить несколько ahk_class ?
Цитата: Mikhail от 12.01.2025, 17:41С новой строки скопируй просто
GroupAdd, ExcludedWindows, ahk_class Notepadзаменив класс и все.
С новой строки скопируй просто СкопированоGroupAdd, ExcludedWindows, ahk_class Notepad заменив класс и все.
Цитата: shim от 12.01.2025, 17:42Цитата: Mikhail от 12.01.2025, 17:41С новой строки скопируй просто
GroupAdd, ExcludedWindows, ahk_class Notepadзаменив класс и все.спасибо! всё получилось именно так как и хотел.
Цитата: Mikhail от 12.01.2025, 17:41С новой строки скопируй просто
СкопированоGroupAdd, ExcludedWindows, ahk_class Notepadзаменив класс и все.
спасибо! всё получилось именно так как и хотел.
Цитата: Имир от 23.01.2025, 15:21Всем привет. У меня этот скрипт работает точно так же, как и AutoClipX, а именно вырезает выделяемый текс и вставляет вместо него букву "с". Более того, если не закрыть/отключить AutoHotkey, то буква "с" начинает произвольно вставляться в любой текст, рядом с мигающим курсором((
Всем привет. У меня этот скрипт работает точно так же, как и AutoClipX, а именно вырезает выделяемый текс и вставляет вместо него букву "с". Более того, если не закрыть/отключить AutoHotkey, то буква "с" начинает произвольно вставляться в любой текст, рядом с мигающим курсором((
Цитата: Mikhail от 23.01.2025, 15:52Имир, Привет.
Ну скорей всего ПК медленный у тебя, что не успевает быстро нажимать сочетание и надо задержки скрипта под тебя настраивать, это он не вырезает, а система не успевает у тебя нажать быстро Ctrl+c. Ну по крайне мере я пока что это так вижу)
Имир, Привет.
Ну скорей всего ПК медленный у тебя, что не успевает быстро нажимать сочетание и надо задержки скрипта под тебя настраивать, это он не вырезает, а система не успевает у тебя нажать быстро Ctrl+c. Ну по крайне мере я пока что это так вижу)
Цитата: Имир от 23.01.2025, 16:33Здравствуйте. Подскажите, пожалуйста, какие значения нужно изменить?
Здравствуйте. Подскажите, пожалуйста, какие значения нужно изменить?
Цитата: Mikhail от 23.01.2025, 16:43Имир, Попробуй там где код
Send ^cзамени его наSleep 50 Send, {Ctrl down} Sleep 10 Send, c Sleep 10 Send, {Ctrl up}Должно получится вот так.
Sleep между нажатиями это задержка, сначала попробуй так как есть, потом по 10 накидывай.
Имир, Попробуй там где код СкопированоSend ^c замени его на
Sleep 50
Send, {Ctrl down}
Sleep 10
Send, c
Sleep 10
Send, {Ctrl up}
Должно получится вот так.
Sleep между нажатиями это задержка, сначала попробуй так как есть, потом по 10 накидывай.
Цитата: Имир от 23.01.2025, 17:33К сожалению, этот метод не сработал. Скрипт по-прежнему вставляет букву "с" только с большой задержкой. Кстати, заметил одну вещь: выделение справа-налево не вставляет букву "с", но и не копирует текст.
Изначально этот скрипт у меня работал как положено, перестал работать сразу после перезагрузки ПК.
gif
К сожалению, этот метод не сработал. Скрипт по-прежнему вставляет букву "с" только с большой задержкой. Кстати, заметил одну вещь: выделение справа-налево не вставляет букву "с", но и не копирует текст.
Изначально этот скрипт у меня работал как положено, перестал работать сразу после перезагрузки ПК.
gif
Цитата: Mikhail от 23.01.2025, 17:54Может у тебя что-то на Пк запущено, что такое вытворяет, даже не знаю, править в коде нечего кроме задержек, такое ощущение, что Пк при зажатии Ctrl ее отпускает сразу же, хотя в коде зажим и отпускание после "C", но что-то это нарушает.
Может у тебя что-то на Пк запущено, что такое вытворяет, даже не знаю, править в коде нечего кроме задержек, такое ощущение, что Пк при зажатии Ctrl ее отпускает сразу же, хотя в коде зажим и отпускание после "C", но что-то это нарушает.
Цитата: Имир от 24.01.2025, 15:54Всем привет! Я наконец понял, в чём была проблема! Оказывается, всё дело в раскладке! В английской раскладке всё работает идеально!
Всем привет! Я наконец понял, в чём была проблема! Оказывается, всё дело в раскладке! В английской раскладке всё работает идеально!
Цитата: Имир от 24.01.2025, 16:34Насколько я понял, чтобы скрипт работал на любых раскладках, нужно букву "с" заменить на виртуальный код клавиши: 67
Насколько я понял, чтобы скрипт работал на любых раскладках, нужно букву "с" заменить на виртуальный код клавиши: 67
