내 프로그램의 문제점을 파악하기 위해 노력하고 있습니다.GuiControl은 하나의 변수를 사용하지만 다른 변수는 사용하지 않습니다.
그것은 다음을 수행하도록 설계된 AutoHotkey에의 v1.1.19.02 스크립트 : 당신은 텍스트 필드에 붙여 넣습니다 다음 클립 보드에 디스크에서 파일을 읽고, + V승리을 누르면. 그것은 읽을 파일을 선택하는 드롭 다운 목록을 가진 간단한 GUI를 가지고 있습니다. 단축키를 누를 때마다이 파일을 선택하면 다음 파일로 넘어갑니다.
그래서 당신은 승리 + V 또 다시을 누르면 할 수 있어야하고 스크립트가 한 번에 하나 개의 파일에 붙여 넣습니다. 드롭 다운 목록은 어떤 파일이 다음에 있는지 알려주고 원하는 경우 다른 파일을 선택할 수있게합니다.파일을 읽고 붙여 넣을 수있는 기능이 있지만 파일을 선택하면 업데이트 할 드롭 다운 목록을 가져올 수 없습니다. 나는 GuiUpdate 서브 루틴에 문제를 격리 한
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
: 내 변수 내가 그 시점에서하고자하는 값이 있는지 확인 TrayTip
을 사용했습니다
GuiUpdate:
FileN := File%FileIndex%
TrayTip, PortalPaste, File5: %File5%`nFileN: %FileN%
GuiControl, ChooseString, ComboBox1, %FileN% ; this line is the problem
return
여기 내 스크립트입니다. %FileN%
대신 %File5%
을 참조하도록 해당 행을 편집하면 GuiControl
은 ComboBox를 항목 5로 설정합니다. 그러나 그 라인에 %FileN%
을 가지고있는 한, GuiControl
은 아무것도하지 않습니다. 심지어 변수 FileN
과 File5
이 동일한 내용을 가지고 있더라도!
변수가 동일한 지 확인하기 위해이 줄을 GuiUpdate:
에 넣기까지했습니다. FileIndex
5 때
truth := FileN == File5
TrayTip, PortalPaste, File5: %File5%`nFileN: %FileN%`nThe two are equal: %truth%
는 truth
툴팁 1로 평가한다. GuiControl, ChooseString, ComboBox1, %File5%
은 어떻게 작동하며 GuiControl, ChooseString, ComboBox1, %FileN%
이 아닌 경우 File5 == FileN
일 때?