1

Тема: AHK v2: Игнорирует проверку активного окна

Мне нужно, чтобы горячие клавиши работали только в окне стандартной программы Ножницы, но данное сочетание работает везде:

#Requires AutoHotkey v2.0


if WinActive("ahk_class Microsoft-Windows-SnipperEditor")
{    
    ~LControl & WheelDown::TransparencyUp()
}

if WinActive("ahk_class Microsoft-Windows-SnipperEditor")
{    
    ~LControl & WheelUp::TransparencyDown()
}


TransparencyUp()
{
Transp := WinGetTransparent("A")
if (!Transp)
 {
 Transp := 255
 }
Transp -= 10
If (Transp < 0)
 {
 Transp := 0
 }
WinSetTransparent Transp, "A"
WinSetAlwaysOnTop 1, "A"
}


TransparencyDown()
{
Transp := WinGetTransparent("A")
if (!Transp) 
 {
 Transp := 255
 }
Transp += 10
If (Transp > 255)
 {
 Transp := 255
 WinSetAlwaysOnTop 0, "A"
 }
WinSetTransparent Transp, "A"
}

Это глюк программы?

2

Re: AHK v2: Игнорирует проверку активного окна

Для выполнения горячих клавиш по условию используйте #HotIf.

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

3 (изменено: Serg2000Mr, 2023-09-20 21:59:10)

Re: AHK v2: Игнорирует проверку активного окна

teadrinker Спасибо. Еще нужно было в функции параметр добавить.

Получилось вот так:

#HotIf WinActive("ahk_class Microsoft-Windows-SnipperEditor") or WinActive("ahk_class YandexBrowser_WidgetWin_1")
~LControl & WheelDown:: TransparencyUp

#HotIf WinActive("ahk_class Microsoft-Windows-SnipperEditor") or WinActive("ahk_class YandexBrowser_WidgetWin_1")
~LControl & WheelUp:: TransparencyDown


 TransparencyUp(Param:=false)
 {
 Transp := WinGetTransparent("A")
 if (!Transp)
  {
  Transp := 255
  }
 Transp -= 10
 If (Transp < 0)
  {
  Transp := 0
  }
 WinSetTransparent Transp, "A"
 WinSetAlwaysOnTop 1, "A"
 }


 TransparencyDown(Param:=false)
 {
 Transp := WinGetTransparent("A")
 if (!Transp) 
  {
  Transp := 255
  }
 Transp += 10
 If (Transp > 255)
  {
  Transp := 255
  WinSetAlwaysOnTop 0, "A"
  }
 WinSetTransparent Transp, "A"
 }

4

Re: AHK v2: Игнорирует проверку активного окна

Два раза одно и то же условие писать не нужно. Все горячие клавиши, расположенные ниже #HotIf, подчиняются его условию, пока не встретится новое #HotIf.

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