快捷键控制弹出菜单(从INI文件动态读取制作)

代码如下:
/*
  本小程序功能:快速打开XX系统中的一些常用界面
  本小程序调用快捷键为:Alt + D
  XX系统 postmessage的wParam参数值可能会变化,因此在用不了以下功能的时候需要重新获取wParam参数值
  特别提醒:XX系统 postmessage的wParam参数值需自行提取
  发送消息到错误的窗口(或发送错误的消息) 可能导致意外的行为或者甚至让目标应用程序崩溃
*/
#Persistent        ; 让脚本持续运行, 直到用户退出.
#SingleInstance




SetWorkingDir, %A_ScriptDir%
IniPath = 示例.ini




gosub,quickmenu




;添加托盘菜单
Menu, StdMenu, Standard
Menu, Tray, NoStandard
Menu, Tray, Add, AutoHot&key, :StdMenu
Menu, Tray, Add                           ; 创建分隔线.
Menu, Tray, Add, 退出, ys_exit            ; 增加托盘菜单“退出”项.
Menu, Tray, Icon, 退出,Shell32.dll, 216   ; 增加托盘菜单“退出”项图标(Shell32.dll序号216图标)
Menu, Tray, Add, 关于, ys_About           ; 增加托盘菜单“关于”项.
Menu, Tray, Icon, 关于,Shell32.dll, 177   ; 增加托盘菜单“关于”项图标(Shell32.dll序号177图标)
return




quickmenu:    ; 从INI文件动态添加一些菜单项来创建弹出菜单.
IniRead, LoopCount, %IniPath%, 菜单数量, menucount
Loop, %LoopCount% {
   IniRead, menuName, %IniPath%, menu%A_Index%, Name
   IniRead, iconumber, %IniPath%, menu%A_Index%, iconumber
   Menu, MyMenu, Add, %menuName%, Label
   Menu, MyMenu, Icon, %menuName%, Shell32.dll, %iconumber%
}
Menu, MyMenu, Add                        ; 添加分隔线.
; 添加子菜单到上面的菜单中.
Menu, Submenu1, Add, 关闭显示器电源, ys_close
Menu, Submenu1, Add, 锁定系统, ys_suo
Menu, MyMenu, Add, 系统功能, :Submenu1   ; 创建第一个菜单的子菜单(右箭头指示符). 当用户选择它时会显示第二个菜单.
Menu, MyMenu, Add                       ; 添加分隔线.
Menu, MyMenu, Add, 关于, ys_About
Menu, MyMenu, Add, 返回, ys_return
Menu, MyMenu, Icon,关于,Shell32.dll, 177
Menu, MyMenu, Icon,返回,Shell32.dll, 216
return




Label:
IniRead, menumber, %IniPath%, menu%A_ThisMenuItemPos%, menumber
postMessage, 0x0111, %menumber%,, , ahk_exe FactoryReport.exe
Return




ys_exit:
ExitApp




ys_About:
Text=
(LTrim
    本小程序功能:利用postMessage快速打开XX系统中的一些常用界面
    本小程序调用快捷键为:Alt + D
)
MsgBox,, 说明, % Text
return




ys_close:           ;关闭显示器电源
SendMessage, 0x0112, 0xF170, 2,, Program Manager
return




ys_suo:             ;锁定系统
run rundll32.exe user32.dll LockWorkStation
return




ys_return:
return




!d::Menu, MyMenu, Show                  ; 即按下 Alt-D 热键来显示菜单.
本脚本使用的《示例.ini》格式如下:

给TA捐赠
共{{data.count}}人
人已捐赠
其他

给 AutoHotkey 添加通用的批量输入 Gui(代替inputbox)

2022-8-16 17:41:52

其他

影子输入法H发布贴

2022-8-17 7:11:59

4 条回复 A文章作者 M管理员
  1. 蜜獾哥

    iniread效率不够,还是用easyini库吧

    • dome

      也不一定高,只不过是一次性读取

  2. 蜜獾哥
    HoneyBadger给您打赏了¥2
    • FM

      感谢!

个人中心
购物车
优惠劵
有新私信 私信列表
搜索