找回密码
 加入
搜索
查看: 2983|回复: 6

[GUI管理] 如何判断第三方程序菜单被点击

  [复制链接]
发表于 2017-3-20 10:19:25 | 显示全部楼层 |阅读模式
帮助中_GUICtrlMenu_GetItemChecked是干这个的吗?试了下如下程序好像不是这个意思。
大家帮忙看下,谢谢!


#include <GuiMenu.au3>

Opt('MustDeclareVars', 1)

_Main()

Func _Main()
    Local $hWnd, $hMain, $hFile

    ; Open Notepad
    Run("Notepad.exe")
    WinWaitActive("[CLASS:Notepad]")
    $hWnd = WinGetHandle("[CLASS:Notepad]")
    $hMain = _GUICtrlMenu_GetMenu($hWnd)
    $hFile = _GUICtrlMenu_GetItemSubMenu($hMain, 0)

    ; Check Open menu item
    ;Writeln("Open is checked: " & _GUICtrlMenu_GetItemChecked($hFile, 1))
    ;_GUICtrlMenu_SetItemChecked($hFile, 0)
    ;Writeln("Open is checked: " & _GUICtrlMenu_GetItemChecked($hFile, 1))
        While 1
                If _GUICtrlMenu_GetItemChecked($hFile, 1) = True Then MsgBox(0,'','open is checked')
        WEnd
EndFunc   ;==>_Main

; Write a line of text to Notepad
Func Writeln($sText)
    ControlSend("[CLASS:Notepad]", "", "Edit1", $sText & @CR)
EndFunc   ;==>Writeln
发表于 2017-3-20 10:30:37 | 显示全部楼层
本帖最后由 229989799 于 2017-3-20 10:56 编辑

应该是检测某项是否被勾选。
#include <GuiMenu.au3>

Example()

Func Example()
    Local $hWnd, $hMain, $hFile

    ; 打开系统记事本程序
    Run("notepad.exe")
    WinWaitActive("[CLASS:Notepad]")
    $hWnd = WinGetHandle("[CLASS:Notepad]")
    $hMain = _GUICtrlMenu_GetMenu($hWnd)
    $hFile = _GUICtrlMenu_GetItemSubMenu($hMain, 0)

    ; 勾选 "打开" 菜单项
    Writeln("<打开>菜单的选择状态: " & _GUICtrlMenu_GetItemChecked($hFile, 1))
    _GUICtrlMenu_SetItemChecked($hFile, 1)
    Writeln("<打开>菜单的选择状态: " & _GUICtrlMenu_GetItemChecked($hFile, 1))
EndFunc   ;==>Example

; 写一些文本到记事本
Func Writeln($sText)
    ControlSend("[CLASS:Notepad]", "", "Edit1", $sText & @CRLF)
EndFunc   ;==>Writeln

返 回 值
返回 True: 项目选中
返回 False: 项目未选中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-3-20 11:07:04 | 显示全部楼层
回复 2# 229989799


帮助例子是判断是否被选中,我想识别那个项目被点击了需要用哪个命令呢?
发表于 2017-3-20 11:24:36 | 显示全部楼层
If _GUICtrlMenu_GetItemChecked($hFile, 1) = True Then MsgBox(0,'','open is checked')
这句话不就是判断吗。。返回值:true和false就是判断
发表于 2017-3-20 12:29:11 | 显示全部楼层
他想知道点选的时候触发是哪个指令
 楼主| 发表于 2017-3-20 15:21:28 | 显示全部楼层
回复 5# veve

对对,就是这个意思。
 楼主| 发表于 2017-3-21 11:32:12 | 显示全部楼层
麻烦大家帮忙看下,多谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 10:49 , Processed in 0.091499 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表