Autohotkey GuiControl使用一个变量,但不使用另一个变量

Autohotkey GuiControl使用一个变量,但不使用另一个变量,autohotkey,Autohotkey,我绞尽脑汁想弄清楚我的程序出了什么问题 这是一个自动热键v1.1.19.02脚本,用于执行以下操作:当您按下Win+V时,将文件从磁盘读取到剪贴板,然后将其粘贴到文本字段中。它有一个简单的GUI和一个下拉列表来选择应该读取哪个文件。它还有一个复选框,选中该复选框后,每次按下热键时都会前进到下一个文件 因此,您应该能够反复按Win+V,脚本将一次粘贴到一个文件中。下拉列表将通知您下一个文件,并允许您选择不同的文件(如果愿意) 我有读取文件并粘贴的功能,但我无法根据选择的文件更新下拉列表。这是我的剧

我绞尽脑汁想弄清楚我的程序出了什么问题

这是一个自动热键v1.1.19.02脚本,用于执行以下操作:当您按下Win+V时,将文件从磁盘读取到剪贴板,然后将其粘贴到文本字段中。它有一个简单的GUI和一个下拉列表来选择应该读取哪个文件。它还有一个复选框,选中该复选框后,每次按下热键时都会前进到下一个文件

因此,您应该能够反复按Win+V,脚本将一次粘贴到一个文件中。下拉列表将通知您下一个文件,并允许您选择不同的文件(如果愿意)

我有读取文件并粘贴的功能,但我无法根据选择的文件更新下拉列表。这是我的剧本:

SendMode Play
SetWorkingDir, C:\files

global FileIndex
global AutoAdvance = 1
global File1 := "folder 1\file1.html"
global File2 := "folder 1\file2.html"
global File3 := "folder 1\file3.html"
global File4 := "folder 2\file1.html"
global File5 := "folder 2\file2.html"
global File6 := "folder 2\file3.html"
; etc

Gui, New
Gui, Add, DropDownList, vFileDropdown gGuiSubmit w250 AltSubmit HwndFileDropdownHwnd
Gui, Add, Checkbox, vAutoAdvance gGuiSubmit checked, Auto-advance
Loop, 6
{
    GuiControl, , FileDropdown, % File%A_Index%
    ;TrayTip, PortalPaste, %A_LoopFileName%
}
GuiControl, Choose, FileDropdown, %File1%
Gui, Show,, PortalPaste

GuiSubmit:
    Gui, Submit, NoHide
    FileIndex := FileDropdown
    Gosub, GuiUpdate
    ;TrayTip, PortalPaste, Auto-advance: %AutoAdvance%. FileIndex: %FileIndex%. File name: %FileName%
return

#q::
GuiUpdate:
    FileN := File%FileIndex%
    TrayTip, PortalPaste, File5: %File5%`nFileN: %FileN%
    GuiControl, ChooseString, ComboBox1, %FileN%
return

TrayTip, PortalPaste, Assistant ready. File dir: %A_WorkingDir%

>!r::Reload
>!e::Edit

#v::
    Send, ^a ; select all
    FileName := File%FileIndex%
    FileRead, Clipboard, %FileName%
    Send, ^v
    if (AutoAdvance) {
        FileIndex++
    }
    Gosub, GuiUpdate
return
我已将问题隔离到GUI更新子例程:

GuiUpdate:
    FileN := File%FileIndex%
    TrayTip, PortalPaste, File5: %File5%`nFileN: %FileN%
    GuiControl, ChooseString, ComboBox1, %FileN% ; this line is the problem
return
我已经使用TrayTip来验证我的变量是否具有我当时想要的值。如果我编辑该行以引用%File5%而不是%FileN%,GuiControl会将组合框设置为条目5。但只要我在那一行有%FileN%,即使变量FileN和File5有相同的内容,GuiControl也不会做任何事情

我甚至将这些行放入GuiUpdate:以验证变量是否相等

truth := FileN == File5
TrayTip, PortalPaste, File5: %File5%`nFileN: %FileN%`nThe two are equal: %truth%

当FileIndex为5时,truth在工具提示中计算为1。当File5==FileN时,GuiControl、ChooseString、ComboBox1、%File5%如何工作,而GuiControl、ChooseString、ComboBox1、%FileN%如何不工作?

AHKscript.org论坛的MJs。GuiControl没有针对正确的控件,因为我用Gui New创建了窗口。删除Gui后,New修复了该问题