0

我有一个用户的选择,它被设置为最近的文件:

$loc = FileSelectFolder("Choose file location...", "\")
$file = FileOpenDialog("Choose file...", $loc, "Jar Files (*.jar*)")
GUICtrlCreateMenuItem($file, $recentfilesmenu)

我试图通过以下方式从中获取信息:

IniWrite("C:\Config.ini", "Recent", "Recent", GUICtrlRead($recentfilesmenu))

但它只给了我 68 号。我的错误在哪里?

4

1 回答 1

2

数字68是菜单的 controlID。

您需要使用_GUICtrlMenu_GetItemText来阅读菜单项的文本:

#include <GUIConstantsEx.au3>
#include <GuiMenu.au3>

$hGui = GUICreate('Read Menu Item', 400, 300)
$mnuFile = GUICtrlCreateMenu('&File')
$mnuFileExit = GUICtrlCreateMenuItem('Exit', $mnuFile)
GUISetState()

; read the text of the menu item
$hMenu = _GUICtrlMenu_GetMenu($hGui)
$sText = _GUICtrlMenu_GetItemText($hMenu, $mnuFileExit, False)
MsgBox(0, 'Menu item text', $sText)

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Or $msg = $mnuFileExit Then ExitLoop
WEnd

这输出:退出


更新

要接受马特的建议,您还可以使用GUICtrlRead更短的高级参数:

IniWrite("C:\Config.ini", "Recent", "Recent", GUICtrlRead($recentfilesmenu, 1))
于 2013-08-02T05:40:43.840 回答