1

Тема: AHK: Запрет на перемещение окна

Здравствуйте,

Существует ли возможность запретить перемещение окна средствами AHK?

У меня в многомониторной системе максимизированное окно GUI можно таскать по экрану мышью или тачпадом, что создает определенные неудобства.

Заранее благодарен

2

Re: AHK: Запрет на перемещение окна

Окно можно перетаскивать только за заголовок?

3

Re: AHK: Запрет на перемещение окна

ypppu пишет:

Окно можно перетаскивать только за заголовок?


Да, только за заголовок. Изменение размера и т.п. не работают.

4

Re: AHK: Запрет на перемещение окна

Тогда Вам поможет команда WinSet - поищите в документации. Если победит лень, поспользуйтесь

+ подсказкой
^F1:: ;Ctrl+F1
WinSet, Style, -0xC00000, A ;Убирает заголовок
WinSet, Style, -0x40000, A ;Запрещает изменять размер окна
Return

^F2:: ;Ctrl+F2
WinSet, Style, +0xC00000, A ;Возвращает заголовок
WinSet, Style, +0x40000, A ;Позволяет изменять размер окна
Return

Styles Usable by the Gui and GuiControl Commands

5

Re: AHK: Запрет на перемещение окна

equipment66, а это GUI ты сам создавал, или это окно чужого приложения?

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

6

Re: AHK: Запрет на перемещение окна

ypppu пишет:

Тогда Вам поможет команда WinSet - поищите в документации. Если победит лень, поспользуйтесь

+ подсказкой
^F1:: ;Ctrl+F1
WinSet, Style, -0xC00000, A ;Убирает заголовок
WinSet, Style, -0x40000, A ;Запрещает изменять размер окна
Return

^F2:: ;Ctrl+F2
WinSet, Style, +0xC00000, A ;Возвращает заголовок
WinSet, Style, +0x40000, A ;Позволяет изменять размер окна
Return

Styles Usable by the Gui and GuiControl Commands

ypppu, Спасибо за совет, но сей рецепт не совсем подходит. Скрипт предназначен для стороннего не очень искушенного пользователя и скрывать элементы управления низяяя

7

Re: AHK: Запрет на перемещение окна

teadrinker пишет:

equipment66, а это GUI ты сам создавал, или это окно чужого приложения?

Это GUI AHK, создавал сам. Стандартные окна винды и ведут себя стандартно, т.е. при максимизации их за заголовок уже не потаскаешь. Думал, может опцию какую включить надо, но ни в русскоязычной, ни в англоязычной справке ничего подходящего не вычитал, вот и обратился за помощью.

8

Re: AHK: Запрет на перемещение окна

Вот пример:

Gui, +MaximizeBox +hwndhGui
Gui, Show, w300 h200

OnMessage(0xA1, "WM_NCLBUTTONDOWN")
return

WM_NCLBUTTONDOWN(wp, lp, msg, hwnd)
{
   static HTCAPTION := 2
   global hGui
   if (hwnd = hGui && wp = HTCAPTION)
   {
      WinGet, MinMax, MinMax, ahk_id %hwnd%
      if MinMax = 1
         Return 0
   }
}

GuiClose:
   ExitApp

Если окно максимизировано, таскать за заголовок его будет невозможно.

equipment66 пишет:

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

В Windows 7 максимизированные окна таскать за заголовок таки можно.

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

9

Re: AHK: Запрет на перемещение окна

Teadrinker, спасибо, все работает