mehrere Ifs mit $Radio1-4 und "send"

03/14/2013 20:17 .yorliK#1
Hallo nochmal,

Seitdem letzenmal hab ich die Checkbox sehr gut verstanden daher, wollte ich hier nochmal eine Frage stellen.

Ich erkläre kurz: Es soll wenn Radio 1 checked ist und start gedrückt wird, endlos F1 gesendet werden. Wenn Radio2 checked ist und start gedrückt wird, soll endlos F2 gesendet werden und das mit F3 F4 genauso.

Ich habs mit einer endlosschleife geschafft, halt nur für F1 wenn ich da so mache wie im Script unten wird, nur F4 gedrückt. Nun weiß ich halt nicht wie ich das mache das es mit allen wieder funktioniert.

Script:
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;-----------------------------------------------------------------
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Beispiel", 198, 158, 406, 201)
GUISetBkColor(0x00FF00)
$Input2 = GUICtrlCreateInput("200", 8, 24, 97, 21)
GUICtrlSetState($Input2, $GUI_DISABLE)
$Checkbox1 = GUICtrlCreateCheckbox("change", 113, 24, 71, 25)
$Button1 = GUICtrlCreateButton("Start", 8, 128, 41, 25)
$Label2 = GUICtrlCreateLabel("", 8, 8, 86, 17)
$Label3 = GUICtrlCreateLabel("", 136, 120, 57, 17)
$Label4 = GUICtrlCreateLabel("", 136, 136, 46, 17)
$Radio1 = GUICtrlCreateRadio("F1", 16, 48, 33, 17)
$Radio2 = GUICtrlCreateRadio("F2", 16, 64, 33, 17)
$Radio3 = GUICtrlCreateRadio("F3", 16, 80, 33, 17)
$Radio4 = GUICtrlCreateRadio("F4", 16, 96, 33, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;--------------------------------------------------------------------

$GG = 0
$troll = 0
$FD = 0
$schleife = 0
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		 Case $Checkbox1
			If GuICtrlRead($CheckBox1) = $GUI_CHECKED Then
			   GuiCtrlSetState($Input2, $GUI_ENABLE)
			Else
			   GuiCtrlSetState($Input2, $GUI_DISABLE)
			EndIF
			
		 Case $Button1
			$read2 = GUICtrlRead($Input2)
			
            If $schleife = 0  and GuICtrlRead($Radio1) = $GUI_CHECKED Then
                AdlibRegister("schleife", $read2)
                GUICtrlSetData($Button1, "Stop")
                $schleife = 1
            Else
                AdlibUnRegister()
                GUICtrlSetData($Button1, "Start")
                $schleife = 0
			 EndIf
			 
			  If $gg = 0  and GuICtrlRead($Radio2) = $GUI_CHECKED Then
                AdlibRegister("gg", $read2)
                GUICtrlSetData($Button1, "Stop")
                $gg = 1
            Else
                AdlibUnRegister()
                GUICtrlSetData($Button1, "Start")
                $gg = 0
			 EndIf
			 
			 If $troll = 0  and GuICtrlRead($Radio3) = $GUI_CHECKED Then
                AdlibRegister("troll", $read2)
                GUICtrlSetData($Button1, "Stop")
                $troll = 1
            Else
                AdlibUnRegister()
                GUICtrlSetData($Button1, "Start")
                $troll = 0
			 EndIF
			 
			 
			 
			 If $FD = 0  and GuICtrlRead($Radio4) = $GUI_CHECKED Then
                AdlibRegister("FD", $read2)
                GUICtrlSetData($Button1, "Stop")
                $FD = 1
            Else
                AdlibUnRegister()
                GUICtrlSetData($Button1, "Start")
                $FD = 0
            EndIf
			 EndSwitch
WEnd

Func schleife()
    Send("{F1}")
    Sleep(50)
 EndFunc
 
 Func gg()
    Send("{F2}")
    Sleep(50)
 EndFunc
 
 Func troll()
    Send("{F3}")
    Sleep(50)
 EndFunc
 
 Func FD()
    Send("{F4}")
    Sleep(50)
 EndFunc

Hoffe jemand hat ne Idee.
Thanks ist ihnen sicher :D


MfG
Kilroy.
03/14/2013 20:54 omer36#2
ohne jetz viel mehr zu verändern als nötig, könnte mann dein problem z. B. so lösen:

PHP Code:
#cs ----------------------------------------------------------------------------

    
AutoIt Version3.3.8.0
    Author
:         myName

    Script 
Function:
    
Template AutoIt script.

#ce ----------------------------------------------------------------------------

Script Start Add your code below here


#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#region ### START Koda GUI section ### Form=
$Form1_1 GUICreate("Beispiel"198158406201)
GUISetBkColor(0x00FF00)
$Input2 GUICtrlCreateInput("200"8249721)
GUICtrlSetState($Input2$GUI_DISABLE)
$Checkbox1 GUICtrlCreateCheckbox("change"113247125)
$Button1 GUICtrlCreateButton("Start"81284125)
$Label2 GUICtrlCreateLabel(""888617)
$Label3 GUICtrlCreateLabel(""1361205717)
$Label4 GUICtrlCreateLabel(""1361364617)
$Radio1 GUICtrlCreateRadio("F1"16483317)
$Radio2 GUICtrlCreateRadio("F2"16643317)
$Radio3 GUICtrlCreateRadio("F3"16803317)
$Radio4 GUICtrlCreateRadio("F4"16963317)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###


Dim $radio[4] = [$Radio1$Radio2$Radio3$Radio4]
Dim $keys[4] = ["{F1}""{F2}""{F3}""{F4}"]
Dim $ButtonSend False

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Checkbox1
            
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
                GUICtrlSetState
($Input2$GUI_ENABLE)
            Else
                
GUICtrlSetState($Input2$GUI_DISABLE)
            EndIf

        Case 
$Button1
            $ButtonSend 
Not $ButtonSend
            
If $ButtonSend Then
                GUICtrlSetData
($Button1"Stop")
            Else
                
GUICtrlSetData($Button1"Start")
            EndIf
    EndSwitch
    If 
$ButtonSend Then
        
For $i 0 To 3
            
If GUICtrlRead($radio[$i]) = $GUI_CHECKED And Not WinActive($Form1_1Then
                Send
($keys[$i])
                
Sleep(50)
            EndIf
        
Next
    
EndIf
WEnd 
sauberer währe es natürlich schon in deiner gui mit arrays zu arbeiten

schau dir mal das beispiel von lolkop an
[Only registered and activated users can see links. Click Here To Register...]