Hallo zusammen,
ich habe noch nicht verinnerlicht wie man es erreichen kann, dass eine Texteingabe nicht so ohne weiteres mit "ENTER" übernommen werden kann. Folgendes Skript benutze ich.
[autoit]
#Include <Misc.au3>
#include <GuiConstantsEx.au3>
#include <GuiStatusBar.au3>
Global $statusbar1, $statusbar1Text
[/autoit][autoit][/autoit][autoit]$GUI1 = GuiCreate("", 330, 165, -1, -1)
[/autoit][autoit][/autoit][autoit]$dateimenu = GUICtrlCreateMenu("&Datei")
$beendenitem = GUICtrlCreateMenuitem("&Beenden Alt+F4",$dateimenu)
GUICtrlCreateGroup("Suche in", 5, 5, 100, 60)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Textsuche", 5, 70, 100, 47)
$InputSuchstring = GUICtrlCreateInput("", 10, 90, 60, 21)
GUICtrlSetLimit(-1,
GUICtrlSetState(-1, $GUI_FOCUS)
GUICtrlSetTip(-1, "Hier wird ein max. 8-stelliger Suchtext eingegeben; 'Enter'")
$ButtonSuchstring = GUICtrlCreateButton("?", 75, 90, 25, 21, 0)
GUICtrlSetTip(-1, "Suche")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Suchergebnis", 110, 5, 215, 112)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$statusbar1 = _GUICtrlStatusBar_Create($GUI1)
$statusbar1Text = "Status: Eingabe erwartet + 'ENTER'"
_GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
GUISetState()
Do
$msg = GUIGetMsg()
If $msg = $beendenitem OR $msg = -3 Then
Exit
Endif
If _IsPressed("0D") Then
Send("{TAB}")
Send("{ENTER}")
Send("+{TAB}")
Endif
Until $msg = $GUI_EVENT_CLOSE
Ich habe die GUI auf das nötigste reduziert. Bisher frage ich über "_IsPressed" ab, ob "ENTER" gedrückt ist, gehe dann per "SEND" zum Button und betätige diesen. Anschließend springt er Cursor wieder zurück ins Eingabefeld - der nächste Wert kann eingegeben werden.
Problem: Wenn mein Programm offen ist, würde der Send-Befehl auch in anderen Programmen funktionieren. Probiert habe ich dies in Notepad. Ist mehr als unerwünscht.
Ziel: Nach Eingabe eines Textes soll durch Drücken der ENTER-Taste der Suchtext ausgegeben werden. Ob dazu ein Button erforderlich ist oder nicht, ist egal. Der Cursor sollte sich nach der Suche aber wieder im IMPUT-Feld befinden.