1

Тема: AHK: Изменение меню скрипта

Речь не о программируемом с Menu меню, а о скриптовом, том, в котором  Переместить, Размер, Закрыть и т.д. Вопрос: можно ли меню скрипта изменять, например, добавлять пункты?
В какую сторону, на какую функцию смотреть, если да?

2

Re: AHK: Изменение меню скрипта

Попробуйте выразить свою мысль более точно: "Я имею в виду меню, которое появляется, когда [здесь ваш текст]".

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

3 (изменено: concept.ru, 2023-04-22 13:37:28)

Re: AHK: Изменение меню скрипта

teadrinker, имею в виду меню, которое появляется, когда происходит нажатие ЛКМ на иконке в шапке окна выполняемого кода с GUI.
Как иначе можно понимать моё первое сообщение?

Post's attachments

2023-04-22_13-26-45.png
2023-04-22_13-26-45.png 5.09 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

4

Re: AHK: Изменение меню скрипта

Как угодно, только не так. Там более, что это меню обычно вызывается не кликом по иконке, а кликом правой кнопкой по любому месту заголовка окна. К скрипту оно не имеет отношения, такое же меню есть у любого другого стандартного окна. Изменять его скриптом AHK проблематично, но можно перехватить с помощью OnMessage(), и вместо него показать своё.

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

5

Re: AHK: Изменение меню скрипта

Для перехвата ЛКМ по иконке:

OnMessage(0xA1, "IconClicked")

IconClicked(wParam){
 If (wParam = 3){
  ToolTip, ЛКМ по иконке, 0, -100
  Return 1
 }
}
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6 (изменено: concept.ru, 2023-04-25 07:33:53)

Re: AHK: Изменение меню скрипта

__Михаил__, teadrinker, спасибо.
Сходил по указанному вами направлению, нашёл, что искал:

GUI +LastFound
MyGUI:=WinExist()
NewSysMenu(MyGUI, "Reset")
GUI Show, W400 h300, SysMenu
OnMessage(0x112, "WM_SYSCOMMAND")
return

GUIClose:
 ExitAPP

WM_SYSCOMMAND(wParam) {
 if !wParam
  GUI Show, W400 h600, NewSysMenu
}
NewSysMenu(hWnd, Options="") {
hMenu:=DllCall("GetSystemMenu", UInt, hWnd, UInt, 0)
NewItemName=&Size
DllCall("AppendMenu", UInt, hMenu, UInt, 0x20, UInt,, UInt, &NewItemName)
}

Оказалось, что всё же меню окна (почему-то называемое системным) имеет отношение к скрипту, т.к. скриптом изменяется.
Ложка дёгтя осталась: хотелось вставить свой пункт перед Закрыть, но никак. Или после, или в новый столбец. Отзовитесь, кто умеет или хотя бы знает.

7

Re: AHK: Изменение меню скрипта

concept.ru пишет:

имеет отношение к скрипту, т.к. скриптом изменяется

Формально его изменить (добавить/удалить пункты) можно, но не удастся добавить свой обработчик, так как оно всё-таки системное. Так что советую смотреть в сторону создания своего меню.

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

8

Re: AHK: Изменение меню скрипта

teadrinker пишет:

но не удастся добавить свой обработчик

в коде из предыдущего сообщения и добавление, и свой обработчик добавленного. И всё это вовсе не формально, но по существу.

9

Re: AHK: Изменение меню скрипта

А как вы в этом обработчике отличите один новый пункт от другого?

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

10

Re: AHK: Изменение меню скрипта

От другого чего? Добавлен только один новый пункт.
Задача добавлять несколько пунктов со своими обработчиками решаема, но мне в нынешнем случае это не нужно.
Различать новые пункты можно по адресу в памяти, по имени, да как угодно.

11

Re: AHK: Изменение меню скрипта

Если нужен только один пункт, тогда вставить можно с помощью InsertMenu или InsertMenuItem.

concept.ru пишет:

адресу в памяти

Интересно!

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

12

Re: AHK: Изменение меню скрипта

&NewItemName

13

Re: AHK: Изменение меню скрипта

И что вы с этим будете делать?

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

14

Re: AHK: Изменение меню скрипта

Не я, Вы. «Отличать один новый пункт от другого», наверное.

15

Re: AHK: Изменение меню скрипта

Мне это число ничего не даёт.

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

16

Re: AHK: Изменение меню скрипта

Ну, а  мне и вовсе не нужно.
Спасибо за новую подсказку.