1 (изменено: Ядрён, 2016-02-03 14:58:48)

Тема: AHK:Активация окна под курсором

Доброго времени суток. На просторах интернета нашёл как можно активировать окно под курсором мыши. Метод (зайти в ветку реестра "HKEY_CURRENT_USER\Control Panel\Desktop" ,  найти ключ UserPreferencesMask  значение 9E 3E 01 80 изменить на  9F 3E 01 80  [только перво 9E на 9F ] ). После таких действий всё исправно работает , но есть одно но при наведении курсора мыши на системный трей он исчезает. Пробывал с помощьй этого ключа "ActiveWndTrkTimeout" поставить задержку но не помогло.Можно конечно так. Но если в трее пропадает одно из приложений, окно трея уменьшается и скрипт уже не работает.

WinWait, ahk_class NotifyIconOverflowWindow
loop
WinMove, 1036, 820
return

Подскажите пожалуйста как можно подвинуть окно трея к панели задач.

+ открыть спойлер

На форуме видел скрипты на активвацию окна под курсором мыши, данный метод мне не подходит.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

2

Re: AHK:Активация окна под курсором

Ядрён пишет:

данный метод мне не подходит.

Почему бы не изменить "данный метод" под свои нужды?

Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3

Re: AHK:Активация окна под курсором

Я не совсем понял, судя по названию темы, вы хотите активировать системный трей? Придумайте название, отражающее суть вопроса.

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

4

Re: AHK:Активация окна под курсором

teadrinker При наведении курсора мыши на системный трей он исчезает. Потому что курсор скользя по панели задач проходит по рабочему столу (там милиметров 5-7 от панели задач до окна трея).

+ открыть спойлер

По этому я и написал активация системного трея.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

5

Re: AHK:Активация окна под курсором

Название темы должно отражать суть вопроса для поиска. Вот как вы думаете, кто придёт по названию "Активация системного трея"? Тот, кому нужно сделать активацию окна под курсором? Или может тот, кому холодильник нужно починить?

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

6

Re: AHK:Активация окна под курсором

Ядрён пишет:

Неверное отображение окна трея при изменении настроек в реестре

Всё совсем плохо. Ну почему бы просто не назвать «Активация окна под курсором»?

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

7 (изменено: Ядрён, 2016-02-03 15:02:19)

Re: AHK:Активация окна под курсором

teadrinker Я исправил название темы , спасибо за идею.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

8 (изменено: teadrinker, 2016-02-05 18:24:07)

Re: AHK:Активация окна под курсором

У меня так работает:

F11:: MsgBox, % ActiveWindowTracking_Toggle()

ActiveWindowTracking_Toggle(ActiveWndTrkZorder=0, ActiveWndTrkTimeout=0)
{
;  ActiveWndTrkZorder — выводить ли активируемое мышью окно на передний план, 0 или 1
;  ActiveWndTrkTimeout — таймаут при активации мышью в милисекундах

   static SPI_GETACTIVEWINDOWTRACKING := 0x1000, SPI_SETACTIVEWINDOWTRACKING := 0x1001
   , SPI_GETACTIVEWNDTRKZORDER := 0x100C, SPI_SETACTIVEWNDTRKZORDER := 0x100D
   , SPI_GETACTIVEWNDTRKTIMEOUT := 0x2002, SPI_SETACTIVEWNDTRKTIMEOUT := 0x2003, SPIF_UPDATEINIFILE := 0x1
      
   if !b := CheckAndAction(SPI_GETACTIVEWINDOWTRACKING, SPI_SETACTIVEWINDOWTRACKING, SPIF_UPDATEINIFILE)
   {
      CheckAndAction(SPI_GETACTIVEWNDTRKZORDER , SPI_SETACTIVEWNDTRKZORDER , SPIF_UPDATEINIFILE, ActiveWndTrkZorder)
      CheckAndAction(SPI_GETACTIVEWNDTRKTIMEOUT, SPI_SETACTIVEWNDTRKTIMEOUT, SPIF_UPDATEINIFILE, ActiveWndTrkTimeout)
   }
   Return !b
}

CheckAndAction(uiGET, uiSET, fWinIni, arg="")
{
   DllCall("SystemParametersInfo", UInt, uiGET, UInt, 0, UIntP, buffer, UInt, 0)
   if (buffer != arg)
      DllCall("SystemParametersInfo", UInt, uiSET, UInt, 0, UInt, arg = "" ? !buffer : arg, UInt, fWinIni)
   Return buffer
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK:Активация окна под курсором

Работает, только значения в реестр меняются не верно. Должны (с 9E на 9F) а меняются (с DE на DF).Так получается активация окна с выводом на передний план. В виндовс 7 в специальных возможностях есть галочка чтобы получить данный эфект. Может легче подвинуть чуток окно системного трея , что бы он вплотную прилегал к панели задач.Вот скрипт но он работает не корретно.Стоит окну системного трея изменить размер и оно отлипает от панели задач.

WinWait, ahk_class NotifyIconOverflowWindow
loop
WinMove, 1036, 820
return
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

10

Re: AHK:Активация окна под курсором

Ошибка была, вот так правильно:

F11:: MsgBox, % ActiveWindowTracking_Toggle()

ActiveWindowTracking_Toggle(ActiveWndTrkZorder=0, ActiveWndTrkTimeout=0)
{
;  ActiveWndTrkZorder — выводить ли активируемое мышью окно на передний план, 0 или 1
;  ActiveWndTrkTimeout — таймаут при активации мышью в милисекундах

   static SPI_GETACTIVEWINDOWTRACKING := 0x1000, SPI_SETACTIVEWINDOWTRACKING := 0x1001
   , SPI_GETACTIVEWNDTRKZORDER := 0x100C, SPI_SETACTIVEWNDTRKZORDER := 0x100D
   , SPI_GETACTIVEWNDTRKTIMEOUT := 0x2002, SPI_SETACTIVEWNDTRKTIMEOUT := 0x2003, SPIF_UPDATEINIFILE := 0x1
      
   if !b := CheckAndAction(SPI_GETACTIVEWINDOWTRACKING, SPI_SETACTIVEWINDOWTRACKING, SPIF_UPDATEINIFILE)
   {
      CheckAndAction(SPI_GETACTIVEWNDTRKZORDER , SPI_SETACTIVEWNDTRKZORDER , SPIF_UPDATEINIFILE, ActiveWndTrkZorder)
      CheckAndAction(SPI_GETACTIVEWNDTRKTIMEOUT, SPI_SETACTIVEWNDTRKTIMEOUT, SPIF_UPDATEINIFILE, ActiveWndTrkTimeout)
   }
   Return !b
}

CheckAndAction(uiGET, uiSET, fWinIni, arg="")
{
   DllCall("SystemParametersInfo", UInt, uiGET, UInt, 0, UIntP, buffer, UInt, 0)
   if (buffer != arg)
      DllCall("SystemParametersInfo", UInt, uiSET, UInt, 0, UInt, arg = "" ? !buffer : arg, UInt, fWinIni)
   Return buffer
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder