2013-03-16 2 views
0

저는 AutoHotkey를 처음 사용하고 프로그래밍 경험이 없으므로 많은 분들께서 매우 유감스럽게 생각하는 질문을하게되어서 유감입니다. AutoHotkey의 주요 용도 중 하나는 AutoHotkey ListBox에서 보관하는 레코드의 데이터를 완료하는 것입니다.ListBox의 AutoHotkey 유형 입력 항목

:*:\lb:: 
Gui, Add, ListBox, h100 vLB, apple||bannana|cantaloup|kiwi|orange|pomegranate|strawberry 
Gui, Add, Button, Default, Input 
Gui, Show 
return 

ButtonInput: 
Gui, Submit 
SendInput, %LB% 
Gui, Destroy 
Return 

내가 포함하고 싶었다 "NoHide"를 한 후 위의 "구이, 제출"하지만 내가 할 경우 스크립트는 더 이상 작동하는지 다음과 같이 다른 포럼 질문에 사용하여 응답 나는 작업 스크립트가 없습니다. Hotstring을 사용하여 ListBox를 실행 한 다음 바탕 화면에 그대로 둔 채로 다른 항목을 선택할 수있는 방법이 있습니까? 그리고 다른 곳을 선택할 때 다른 곳으로 가면 다른 곳을 선택해야합니다. 목록 상자에서 항목을? 스크립트에서 "Gui, Destroy"를 제거하면 스크립트도 더 이상 작동하지 않으므로 해결책이 아닙니다. 도움을받을 수있는 사람에게 미리 감사드립니다.

+0

당신이 이것에 관심이 있는지는 잘 모르겠지만 업로드/다운로드 기능과 일종의 사본으로 항목을 삽입 할 수있는 가능성으로 앱을 확장했습니다. 알려 주시면 공유하겠습니다. –

답변

0

방금 ​​시작한이 수정 된 스크립트는 사용자가 닫을 때까지 맨 위에 있습니다. 그것이 당신이 원했던 것이기를 바랍니다. Gui를 닫으면 AHK 스크립트도 닫힙니다.

SetTitleMatchMode, 2 

;:*:\lb:: 
Gui, Add, ListBox, h100 vLB, apple||bannana|cantaloup|kiwi|orange|pomegranate|strawberry 
Gui, Add, Button, Default, Input 
Gui, +AlwaysOnTop 
Gui, Show 
return 

ButtonInput: 
Gui, Submit, NoHide 
;MsgBox, %LB% 
ControlSend,, %LB%, Part of your App title in the windows bar OR ahk_class ABCD (via AHK Windows Spy) 
Return 

GuiClose: 
GuiEscape: 
Gui, Destroy 
ExitApp 

업데이트 : 내가 도움이되지만 좀 더 기능을 추가했다 없습니다

. 항목을 두 번 클릭하면 자동으로 다음 셀로 이동합니다.

#SingleInstance Force 
#installKeybdHook 
#Persistent 

Gui, Add, ListBox, h100 vMyListBox gMyListBox, apple|bannana|cantaloup|kiwi|orange|pomegranate|strawberry 
Gui, Add, Button, Default, Input 
Gui, +AlwaysOnTop 
Gui, Show 
return 

MyListBox: 
if A_GuiControlEvent <> DoubleClick 
    return 
GuiControlGet, MyListBox ; Retrieve the ListBox's current selection. 
Send, !{Esc} 
Sleep, 200 
SendInput, %MyListBox%{Tab} 
return 

ButtonInput: 
Gui, Submit, NoHide 
Send, !{Esc} 
Sleep, 200 
SendInput, %MyListBox%{Tab} 
Return 

GuiClose: 
GuiEscape: 
Gui, Destroy 
ExitApp 
+0

도움을 주셔서 대단히 감사합니다. ListBox에서 선택한 내용을 입력하는 대신, 메시지 상자가 나타납니다. "MsgBox, % LB % ;"을 제거하고 "SendInput, % LB %"을 그대로두면 더 이상 작동하지 않습니까? Gui를 맨 위에두고있는 동안 ListBox 선택을 입력하는 방법이 있습니까? 더 이상의 도움을 주시면 대단히 감사하겠습니다. –

+0

그것은 자신의 GUI로 전송하기 때문입니다. ControlSend를 사용하십시오. 전송할 앱의 제목 또는 ID를 알아야합니다. 이것을 스크립트에 추가하겠습니다. –

+0

대단히 감사합니다! –