Button mit Funktion belegen

01/03/2009 14:29 Gorn92#1
Hi,

Ich stehe bei der Programierung eines Botes vor einem Problem. Ich habe eine einfache GUI erstellt, und möchte einen Button mit einer Funktion belegen.
Hier mal eine Bsp-GUI:
Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 511, 235, 193, 125)
$Input1 = GUICtrlCreateInput("Message", 64, 80, 385, 21)
$Button1 = GUICtrlCreateButton("Send", 200, 144, 97, 33, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Wie ihr seht habe ich dort ein Input-Feld und einen Button. Der Button soll jetzt den Inhalt des Input-Feldes senden. z.B.:
Code:
	Run("notepad.exe")
	WinWait("Unbenannt")
	Controlsend("Unbenannt", "", "", $Input1)
Ich habe jetzt schon einiges darüber gelesen, es aber noch nicht geschafft, diese Funktion an den Button zu binden.

Wie macht man das?

MfG,

Gorn
01/03/2009 14:39 aLasca#2
PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"511235193125)
$Input1 GUICtrlCreateInput("Message"648038521)
$Button1 GUICtrlCreateButton("Send"20014497330)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg $Button1
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
WEnd

Func _x
()

Run("notepad.exe")
    
WinWait("Unbenannt")
    
Controlsend("Unbenannt"""""$Input1)
EndFunc

$Button1 
Call("_x"
so müsste es gehen
01/03/2009 14:54 Gorn92#3
Danke für die schnelle Antwort, aber leider will es nohc nicht so. Wenn ich jetzt auf den Button klicke, beendet sich das Script und macht nichts... leider
01/03/2009 15:02 NBA#4
Wenn du das Input auslesen willst, kannst du das mit GuiCtrlRead($Input1) machen.

z.B.
Code:
#include <GuiConstants.au3>
GuiCreate("Fernlehrgang")
$input1 = GuiCtrlCreateInput("Hier den Text",10,10)
$button1 = GUICtrlCreateButton("Auslesen",10,40)
GuiSetState(@SW_SHOW)

Func _x()

Run("notepad.exe")
    WinWait("Unbenannt")
    Controlsend("Unbenannt", "", "", $Auslesen)
EndFunc 

While 1
	$msg = GUIGetMsg()
	If $msg = $GUI_EVENT_CLOSE Then ExitLoop
	If $msg	= $button1 Then
		$Auslesen =  GUICtrlRead($input1)
		_x()
	EndIf
WEnd
Schoen ist es zwar nicht, aber es funzt!
01/03/2009 15:07 Gorn92#5
So gehts Danke!
01/03/2009 15:08 NBA#6
Kein Problem. Man muss nur kreativ sein :D
01/03/2009 15:08 lox.0r#7
So mach ichs immer:

PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"511235193125)
$Input1 GUICtrlCreateInput("Message"648038521)
$Button1 GUICtrlCreateButton("Send"20014497330)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
                Case 
$Button1
                        _blabla
()
    EndSwitch

Func _blabla()
    
Run("notepad.exe")
    
WinWait("Unbenannt")
    
Controlsend("Unbenannt"""""$Input1)
EndFunc
WEnd 
01/03/2009 15:12 Gorn92#8
Quote:
Originally Posted by O,...,O View Post
So mach ichs immer:
Mhm. da bekomm ich nur eine Fehlermeldung ^^

Edit: Mhm. ich hab das jetzt mal mit $Button1=Call("Funktion") probiert, aber wenn ich dann auf den Button drücke, wird die Funktion einfach nicht aufgerufen... aber das Skript wird beendet. Was habe ich falsch gemacht?

PHP Code:
 #include <GUIConstants.au3> 

#Region ### START Koda GUI section ### Form= 
$Form1 GUICreate("Form1"493349193125)
$input1 GUICtrlCreateInput("Message"9610432121)
$input2 GUICtrlCreateInput("Window"9616032121)
$Button1 GUICtrlCreateButton("Send"160232185490)
GUISetState(@SW_SHOW
#EndRegion ### END Koda GUI section ### 

While 
    $nMsg 
GUIGetMsg() 
    Switch 
$nMsg $Button1 
        
Case $GUI_EVENT_CLOSE 
            
Exit 

    EndSwitch 
WEnd 

$Button1 
Call("_x")  

Func _x() 

While 
1
ControlSend 
($input2""""$input1) ;~ Sende Input1 an Input2
ControlSend 
($input2"""""{enter down}")
Sleep(200)
ControlSend ($input2"""""{enter up}")
WEnd
   
EndFunc 
01/06/2009 13:21 Read Me#9
Das geht so:
Code:
 #include <GUIConstants.au3> 

$Form1 = GUICreate("Input1 zu Input2", 220, 100, 193, 125)
$input1 = GUICtrlCreateInput("Message", 10, 10, 200, 21)
$input2 = GUICtrlCreateInput("Window", 10, 35, 200, 21)
$Button1 = GUICtrlCreateButton("Send", 10, 65, 200,30)
GUISetState(@SW_SHOW) 

While 1 
    $nMsg = GUIGetMsg() 
    Switch $nMsg
        Case $GUI_EVENT_CLOSE 
            Exit 
        Case $Button1
	    _Weitergeben()
    EndSwitch 
WEnd 

Func _Weitergeben() 
	$read=GUICtrlRead($input1,1) ;input1 auslesen
	GUICtrlSetData($input2,$read);Data aus input1 auf input2 übertragen
EndFunc