1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoBert

Beiträge von autoBert

  • Clipboard auslesen und durchsuchen

    • autoBert
    • 5. Mai 2016 um 01:52

    Das hier gepostete sieht wie ein Ausschnitt aus einem größeren Skript aus und ist so nicht lauffähig.

    Dein kpmplettes Skript könnte laufen wenn

    • #include <Array.au3> am Anfang hinzugefügt wird. Dieses Include wird benötigt für _ArrayDisplay
    • die Zeile mit MsgBox(0,"fast fertig", "fast fertig") entfernt wird. MsgBox überschreibt (wie alle Funktionen) @Extended

    wie gesagt könnte, aber da du die MsgBox zu sehen bekommen hast, sollte es eigentlich klappen.

    So:

    Code
    #include <Array.au3>
    
    
    Global $aini
    $sData = ClipGet() ;Daten aus Zwischenablage auslesen
    #cs
    	$hFile=FileOpen('Pseudo.Ini',$FO_OVERWRITE)
    	FileWrite($hFile,$sData)
    	FileClose($hFile)
    #ce
    ;$sData=FileRead('Pseudo.Ini')
    _PseudoIniCreate($sData) ;PseudoIni als 2D-Array erzeugen
    $sFound = _PseudoIniRead("LW")
    If @extended Then
    	$aRes = StringSplit($sFound, '|', 1 + 2)
    	_ArrayDisplay($aRes, "LW")
    EndIf
    MsgBox(0, "habe fertig", "Flasche leer" & @CRLF & "was machen Strunz?")
    
    
    Func _PseudoIniCreate($sIniText)
    	$aini = StringSplit($sIniText, @CRLF, 1 + 2) ;=> 1D Array aller kopierten Zeilen
    	_ArrayColInsert($aini, 1) ;aus 1D 2D machen
    	For $i = UBound($aini) - 1 To 0 Step -1 ;Zeilen durchgehen
    		$aini[$i][0] = StringReplace($aini[$i][0], ',', '=', 1) ;1. Komma mit Gleichzeichen ersetzen
    		$split = StringSplit($aini[$i][0], '=', 1 + 2) ;Zeile mit = trennen
    		If UBound($split) > 1 Then ;Datenwerte eintragen
    			$aini[$i][0] = $split[0]
    			$aini[$i][1] = $split[1]
    		Else
    			_ArrayDelete($aini, $i)
    		EndIf
    	Next
    	_ArrayDisplay($aini)
    EndFunc   ;==>_PseudoIniCreate
    
    
    Func _PseudoIniRead($sKey)
    	;Syntax _PseudoIniRead('DerGesuchteString')
    	;
    	;Parameter:	$sKey	enthält den zu suchenden "Key" im PseudoIni-Array
    	;
    	;Rückgabe:	bei Erfolg: einen | getrennten String = "Value" des "Keys"
    	;						@error		= 0
    	;						@extended	= Anzahl der Teilstrings
    	;
    	;			bei Fehler: @error 		=	1
    	;						@extended 	=	0
    	Local $sRet, $iErr = 1, $iExt = 0
    	For $i = 0 To UBound($aini) - 1 Step 1
    		If $aini[$i][0] = $sKey Then
    			$sRet = StringReplace($aini[$i][1], ',', '|')
    			$iExt = @extended + 1
    			$iErr = 0
    			ExitLoop
    		EndIf
    	Next
    	SetError($iErr, $iExt)
    	Return $sRet
    EndFunc   ;==>_PseudoIniRead
    Alles anzeigen

    funktioniert dein geposteter Ausschnitt jedenfalls.

  • Clipboard auslesen und durchsuchen

    • autoBert
    • 4. Mai 2016 um 21:49

    Diese Zeile:

    Code
    $sSearchingFor = $aIni[Random(0, UBound($aIni) - 1)][0]

    ermittelt zu Demozwecken einen gültigen "Key" Mit

    Code
    $sFound=_PseudoIniRead($sSearchingFor)

    wird dann das Value abgefragt. Du kannst natürlich $sSearchingFor einen Wert zuweisen oder $sFound=_PseudoIniRead() mit einem gültigen Wert aufrufen. Für "LW" also $sFound=_PseudoIniRead("LW"). $sFound enthält danach einen mit "|" getrennten String aller Werte, da _PseudoIniRead in @Extended die Anzahl der Werte zurückgibt kannst du mit

    Code
    $sSearchingFor="LW"
    $sFound=_PseudoIniRead($sSearchingFor)
    If @extended Then
    	$aRes=StringSplit($sFound,'|',1+2)
    	_ArrayDisplay($aRes,$sSearchingFor)
    EndIf

    ein Array mit allen Werten erzeugen und anzeigen. StringSplit erzeugt ein Array mit (evtl.) mehreren Elementen.

  • Events / Prozessbeobachtung - eine Art ServiceTracker

    • autoBert
    • 4. Mai 2016 um 15:42

    <p>viel Spaß dabei, aber du kannst ja notfalls Abby fragen. </p><p><br></p><p>Andere Möglichkeit, du kämpfst dich durch die Einstellungen von WMI, damit sollte es möglich sein für fast jede Kleinigkeit eine Statistik auszugeben. Da diese Messerei aber das System zusätzlich belastet tust du UserA keinen Gefallen damit.<br></p>

  • TreeView durchsuchen und markieren

    • autoBert
    • 4. Mai 2016 um 15:04

    so:

    Code
    Func _SearchNode($hTV, $sText)
    	ConsoleWrite('_SearchNode: ' & $sText & @CRLF)
    	Local $hNode = _GUICtrlTreeView_FindItem($hTV, $sText) ;hier klemmt's
    	ConsoleWrite('_GUICtrlTreeView_FindItem: ' & $hNode & @CRLF)
    	If $hNode Then
    		If $hNode <> $hRoot Then
    			Do
    				$hNode = _GUICtrlTreeView_GetParentHandle($hTV, $hNode)
    				ConsoleWrite($hNode & @CRLF)
    			Until $hNode = $hRoot
    			ConsoleWrite('Done '&($hNode=$hRoot)&@CRLF)
    		Else
    			ConsoleWrite('nothing to do '&($hNode=$hRoot)&@CRLF)
    		EndIf
    	Else
    		ConsoleWrite('_SearchNode: ' & $sText & ' not found' & @CRLF)
    	EndIf
    EndFunc   ;==>_SearchNode
    Alles anzeigen

    sollte es eigentlich funktionieren, wenn man einen vorhandenen Text eines TreeNodes angibt. Bei meinen Tests ging es aber schief sobald ich etwas anderes als das Homedrive suchte. Ist wohl nicht mein Tag heute.

  • Clipboard auslesen und durchsuchen

    • autoBert
    • 4. Mai 2016 um 07:30

    In AutoIt dürfen keine Func's innerhaln von Func's delariert werden.

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • autoBert
    • 3. Mai 2016 um 21:05
    Zitat von Raupi

    Ich sehe bis jetzt keine Probleme mi dem Thread, deshalb hab ich ihn wieder freigeschaltet.

    Ich schon allein in der Tatsache das er in der Öffentlickeit diskutiert wird und lt. TE, die Datei die erorbenen (gekauft oder erspielt) Items 1) eines Spielers enthält. Zum auswerten muß niemand die Daten einer solchen Datei ändern. Das Thema hat somit also großes Potential als Vorlage für ein Cheating Programm zu dienen.
    Gerade ein Hoster mit Angst vor BOT's würde imho soetwas nicht öffentlich diskutieren. Zum anderen sollte ein Gameserver-Betreiber auch in der Lage sein dafür ein Paar € springen zu lassen, deshalb auch mein Hinweis 2), da dort ja nach 1. Kontaktaufnahme alles per PN läuft sähe ich dort auch kein Problem.

    Edit: Das ganze ist ein XY Problem: X=Irgendwelche Spieler cheaten, anstatt jetzt nur anhand einer Auswertung diese zu bannen, seinen Server und Game besser abzusichern wird Y versucht: das gecheatete rückgängig zu machen. Das hierbei (durch dieses Thema) gleichzeitig eine Vorlage entsteht, anhand derer noch mehr Spieler an das Wissen kommen: a) hier ist ein unsicherer Server, b) so funktioniert das Verfahren mit dem ich die Itemdatei nach Belieben ändern kann, wird dabei völlig übersehen.

    Selbstverständlich respektiere ich deine Entscheidung und werde mich ab sofort kommplet aus diesem Thema heraushalten, außer ein Mod/Admin fragt ausdrücklich nach meiner Meinung.

    mfg (auto)Bert

    1)

    Zitat


    meisterlampe00 schrieb:

    Im endeffekt möchte ich mit diesem Tool .ply auswerten wenn er zuviel von einer xmenge hat seine ID markieren usw das ist aber nicht das problem.


    2)

    Zitat


    autoBert schrieb:

    Und das ein benötigtes Tool fehlt, sollte man über Auftragsprogrammierung lösen, schließlich will man ja selbst (=Galaxy9.de) Geld verdienen.

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • autoBert
    • 3. Mai 2016 um 16:06

    Was war unter der Gürtellinie? Galaxy9.de schottet sich ab, ich müßte dort erst einen Account eröffnen. Tante Google findet jedenfalls kein Mitglied Meisterlampe. Das du der Hoster dieses Servers bist könnte man also wirklich nur mit eigenem großen Aufwand nach vollziehen, denn ich habe nicht vor dort Mitglied zu werden.

    Eine offizielle EMail des Serverhosters an @Raupi bzw. @Gun-Foodwäre evtl. hilfreich.

    Und das ein benötigtes Tool fehlt, sollte man über Auftragsprogrammierung lösen, schließlich will man ja selbst (=Galaxy9.de) Geld verdienen.

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • autoBert
    • 3. Mai 2016 um 15:50

    Ich hab dir doch bereits gesagt

    Zitat von autoBert

    Die Entscheidung überlasse ich daher unseren Mod's bzw. Admins

    also gedulde dich.

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • autoBert
    • 3. Mai 2016 um 15:37

    ich kann auf die schnelle nicht feststellen, daß du der rechtmäßge Eigentümer von Galaxy9.de bzw. einer der Bevollmächtigteen bist. Die Entscheidung überlasse ich daher unseren Mod's bzw. Admins, wundere mich aber das ein Hoster keine geeigneten Werkzeuge hat und auf anderen Foren betteln gehen muß.

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • autoBert
    • 3. Mai 2016 um 15:16

    Ich lese in deinem Skript $steamid und bin Profi genug um zu wissen, daß sich das Steamportal ausschliesslich mit Spielen beschäftigt.

    Zitat von Forenregeln


    Folgende Inhalte sind absolut nicht erwünscht. Das Team behält es sich
    ausdrücklich vor, zur Durchsetzung der Regeln je nach Schweregrad
    Benutzer, Posts und Threads zu verwarnen, zu sperren oder zu löschen.


    Programme, die einem Spieler bei jeglicher Art von Computerspiel (auch Einzelspieler) einen Vorteil verschaffen ("Bots")
    Tools, um Nachrichten unerwünscht oft zu versenden (Spamming-Tools)
    Programme, die anderen, auch Freunden, einen Schreck einjagen sollen
    oder sich sonst über andere Nutzer lustig machen ("Spaßviren")
    Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbieten
    Viren
    Malware, Spyware
    Keylogger
    Umgehen von Captchas


    (Diese Liste ist ausdrücklich nicht vollständig. Programme, die dem
    hinter diesen Regeln stehenden Geist widersprechen, sind ebenso als
    nicht erlaubt anzusehen)

    Alles anzeigen

    du mußt also eine gute Erklärung abliefern, damit dein Eröffnungsbeitrag wieder freigeschaltet und das Thema nicht komplett in der Tonne landet.

    mfg (auto)Bert

  • Clipboard auslesen und durchsuchen

    • autoBert
    • 3. Mai 2016 um 12:54
    Zitat von Lanealine

    es kann auch sein, dass hinter den buchstaben mehr als 3 verschiedene zahlen stehen, ist das ein problem für dein script ?

    Natürlich ist dies ein Problem bei @Kanashius Skript ist das Skript doch auf 3 Variablen fixiert. Anders ist es hier:

    Spoiler anzeigen
    C
    #include <Array.au3>
    #include <FileConstants.au3>
    
    
    Global $aIni
    
    
    $sData=ClipGet()			;Daten aus Zwischenablage auslesen
    #cs
    $hFile=FileOpen('Pseudo.Ini',$FO_OVERWRITE)
    FileWrite($hFile,$sData)
    FileClose($hFile)
    #ce
    ;$sData=FileRead('Pseudo.Ini')
    _PseudoIniCreate($sData)			;PseudoIni als 2D-Array erzeugen
    
    
    $sSearchingFor=$aIni[Random(0,UBound($aIni)-1)][0]
    $sFound=_PseudoIniRead($sSearchingFor)
    $bIsStrinArray=@extended
    If Not @error Then
    	MsgBox(0,'für '&$sSearchingFor&':', $sFound&@CRLF&@CRLF&'Teilstrings: '&$bIsStrinArray)
    Else
    	ConsoleWrite(@CRLF&$sSearchingFor&' = '&$sFound&@TAB&'Fehler: '&@error&' Extended: '&@extended&@CRLF&@CRLF)
    EndIf
    If $bIsStrinArray Then
    	$aRes=StringSplit($sFound,'|',1+2)
    	_ArrayDisplay($aRes,$sSearchingFor)
    EndIf
    
    
    Func _PseudoIniCreate($sIniText)
    	$aIni = StringSplit($sIniText, @CRLF, 1 + 2)	;=> 1D Array aller kopierten Zeilen
    	_ArrayColInsert($aIni,1)						;aus 1D 2D machen
     	For $i = UBound($aIni)-1 To 0 Step -1			;Zeilen durchgehen
    		$aIni[$i][0] = StringReplace($aIni[$i][0], ',', '=', 1) ;1. Komma mit Gleichzeichen ersetzen
    		$split = StringSplit($aIni[$i][0], '=', 1 + 2) 			;Zeile mit = trennen
    		If UBound($split) > 1 Then								;Datenwerte eintragen
    			$aIni[$i][0] = $split[0]
    			$aIni[$i][1] = $split[1]
    		Else
    			_ArrayDelete($aIni,$i)
    		EndIf
    	Next
    	_ArrayDisplay($aIni)
    EndFunc   ;==>_PseudoIniCreate
    
    
    Func _PseudoIniRead($sKey)
    	;Syntax _PseudoIniRead('DerGesuchteString')
    	;
    	;Parameter:	$sKey	enthält den zu suchenden "Key" im PseudoIni-Array
    	;
    	;Rückgabe:	bei Erfolg: einen | getrennten String = "Value" des "Keys"
    	;						@error		= 0
    	;						@extended	= Anzahl der Teilstrings
    	;
    	;			bei Fehler: @error 		=	1
    	;						@extended 	=	0
    	;gibt bei Erfolg  für $sKey zurück
    	Local $sRet, $iErr=1, $iExt=0
    	For $i = 0 To UBound($aIni) - 1 Step 1
    		If $aIni[$i][0] = $sKey Then
    			$sRet=StringReplace($aIni[$i][1],',','|')
    			$iExt=@extended+1
    			$iErr=0
    			ExitLoop
    		EndIf
    	Next
    	SetError($iErr,$iExt)
    	Return $sRet
    EndFunc   ;==>_PseudoIniRead
    Alles anzeigen

    allerdings bekommst du hier einen mit | getrennten Ergebnisstring (Array wäre auch möglich) den du noch in ein Array splitten mußt. Auch hier mußt du dir vor dem Aufruf merken (in eine Variable speichern) was du gesucht hast.

    Edit: Errorhandling hinzugefügt

  • SoundPlay pausieren

    • autoBert
    • 1. Mai 2016 um 10:58

    Nimm eine Listview, siehe dazu [Beispiel] NeMP3-P (MP3-Player) Version 0.8.4.7

  • Mehrere Inputeingaben durch Arraybutton

    • autoBert
    • 29. April 2016 um 14:09

    Poste mal die gewünschten Ergebnisse für:

    • Klick Zeile 1 B => 1. Input = B BackgroundColor = ? TextColor = ?
    • Klick Zeile 2 B => 2. Input = B BackgroundColor = ? TextColor = ?
    • Klick Zeile 1 A => X. Input = A BackgroundColor = ? TextColor = ?
    • Klick Zeile 2 A => X. Input = A BackgroundColor = ? TextColor = ?
    • Klick Zeile 1 B => X. Input = B BackgroundColor = ? TextColor = ?
    • Klick Zeile 2 B => X. Input = B BackgroundColor = ? TextColor = ?

    das ganze auch noch unter Einbeziehung der 3. Zeile mehrmals wiederholen (jeweils 4,6 + 9 Zeilen mit entsprechender Anzahl Klicks). Ich kann bisher die Regellogik noch nicht erkennen, eventuell hast du zuwenige Ausgaben. Wenn ich den Case Block für die Inputs so:

    AutoIt
    Case $aTest[0][0] To $aTest[8][2]
    			For $i2 = 0 To 1 ;war 2
    				For $i = 0 To 8
    					$iArray = $nMsg - $aTest[0][$i2]
    					If $iArray = $i Then 
    						GUICtrlSetData($iTest[$i2], $sTest[$iArray][0])
    						;GUICtrlSetColor($iTest[$i2],$Farbe[$i2]
    						;GUICtrlSetBKColor($iTest[$i2],$BKFarbe[$i2]
    					EndIf
    				Next
    			Next
    Alles anzeigen

    ändere, erhalte ich zwar Ergebnisse die deiner Beschreibung näher kommen, bezweifle aber daß es das gewünschte ist.

  • Nach Kompilieren: Unable to open the script file

    • autoBert
    • 28. April 2016 um 23:42

    Exe löschen (das 1. mal hats doch geklappt?), Rechner neustarten, Skript editieren wenn nötig (evtl. #RequireAdmin löschen), kompilieren und wundern daß es klappt. So gings zumindest mir vor ein paar Wochen.

  • Was ist $nMsg ?

    • autoBert
    • 28. April 2016 um 23:09

    $nMsg ist eine Variable, welche du in deinem Urspungsskript selbst benzutzt hast:

    Code
    $nMsg = GUIGetMsg()


    Für die Lösung deines Problems habe ich die Controll-IDs der Radios in einem Array gespeichert. Da die ich die Radios in einer For...Next Schleife erzeuge sind sie fortlaufend.

    Code: ein Radio in der 1. Spalte wurde geklickt
    Case $idRadios[0][0] to $idRadios[6][0]

    Wenn man also von $nMsg (welche ja die durch GuiGetMsg ermitteltete ControlID des Controls repräsentiert welches geklickt wurde) die ControlID des ersten im Array gespeicherten Radios abzieht erhält man die Position im Array.

    Code
    $iRadioGrp0 = $nMsg - $idRadios[0][0]


    Das ganze kannst du ja in der Scitekonsole beobachten:

    Code
    ConsoleWrite($iRadioGrp0&' = ' &GUICtrlRead($idRadios[$iRadioGrp0][0],1)&@CRLF)

    hier wird immer der Text des geklickten Radios ausgegeben. Die 8. Zeile des Arrays (da 0 basiert $idRadios[7][x]) benutze ich zum zwischenspeichern bzw. anzeigen der zuletzt versteckten Radios:

    AutoIt: anzeigen
    GUICtrlSetState($idRadios[7][1],$GUI_SHOW)		;evtl. versteckes mittleres Radio zeigen
    GUICtrlSetState($idRadios[7][2],$GUI_SHOW)		;evtl. versteckes rechtes Radio zeigen
    AutoIt: zwischenspeichern, unCHECKen und verstecken
    If GUICtrlRead($idRadios[$iRadioGrp0][0]) Then
    	$idRadios[7][1] = $idRadios[$iRadioGrp0][1] ;mittleres Radio merken
    	$idRadios[7][2] = $idRadios[$iRadioGrp0][2] ;rechtes Radio merken
    	GUICtrlSetState($idRadios[$iRadioGrp0][1], $GUI_UNCHECKED) ;verhindern von unsichtbar gecheckten Radios
    	GUICtrlSetState($idRadios[$iRadioGrp0][2], $GUI_UNCHECKED) ;verhindern von unsichtbar gecheckten Radios
    	;besser als Hide und Show wäre Disable und Enable ohne ist manuelles unckecken nötig
    	GUICtrlSetState($idRadios[$iRadioGrp0][1], $GUI_HIDE)
    	GUICtrlSetState($idRadios[$iRadioGrp0][2], $GUI_HIDE)
    EndIf

    du siehst das ganze Konzept beruht auf den fortlaufenden ControlID's (durch erstellen in Schleife gewährleistet) und einer einfachen Rechenformel.

    Edit: Skript schreiben geht deutlich schneller als erlären, als ich angefangen habe hatte Water noch nicht geantwortet.

  • Mehrere Radios gleichzeitig Checken

    • autoBert
    • 28. April 2016 um 09:48

    Du (und dadurch auch Andy) hast einen Parameter zuviel, dadurch wird BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE) als extended Style genommen.

  • Nummernkreislauf generieren

    • autoBert
    • 25. April 2016 um 15:37

    Sende doch einfach die IP in der Anfrage mit, die Antwort schickst du an diese IP.

  • Treeview - Un/Check eines Item mit allen SubItem (rekursiv)

    • autoBert
    • 25. April 2016 um 15:24

    Hallo BugFix,

    teste einmal TreeView-(Un)Checked-Example von @Oscar


    mfg (auto)Bert

  • Warum blinken meinen Button ?

    • autoBert
    • 25. April 2016 um 13:34

    Hier mal mein erweitertes Skript, bei dem alle Buttons den Namen aus einem Array beziehen:

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $idRadios[8][3]	;8 Zeilen (0..7) 3 Spalten (0..2)
    ;8. Zeile wird benutzt um derzeit versteckte ControlID's zwischenzuspeichern
    Global $sRadioNames[7][3]
    ;8. Zeile wird hier nicht benutzt deshalb 1 Zeile weniger 
    $sRadioNames[0][0]='Test0'
    $sRadioNames[1][0]='aa0'
    $sRadioNames[2][0]='vor0'
    $sRadioNames[3][0]='nach0'
    $sRadioNames[4][0]='all0'
    $sRadioNames[5][0]='Null0'
    $sRadioNames[6][0]='fertig?'
    $sRadioNames[0][1]='Test1'
    $sRadioNames[1][1]='aa1'
    $sRadioNames[2][1]='vor1'
    $sRadioNames[3][1]='nach1'
    $sRadioNames[4][1]='normal'
    $sRadioNames[5][1]='Null1'
    $sRadioNames[6][1]='fast'
    $sRadioNames[0][2]='Test2'
    $sRadioNames[1][2]='aa2'
    $sRadioNames[2][2]='vor2'
    $sRadioNames[3][2]='nach2'
    $sRadioNames[4][2]='komisch'
    $sRadioNames[5][2]='Null2'
    $sRadioNames[6][2]='fertig'
    
    
    $Form1_1 = GUICreate("Form1", 583, 716, 192, 124)
    GUIStartGroup()
    for $i= 0 to 6
    	$idRadios[$i][0] = GUICtrlCreateRadio($sRadioNames[$i][0], 24, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    GUIStartGroup()
    for $i= 0 to 6
    	$idRadios[$i][1] = GUICtrlCreateRadio($sRadioNames[$i][1], 72, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    for $i= 0 to 6
    	$idRadios[$i][2] = GUICtrlCreateRadio($sRadioNames[$i][2], 120, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    $idBtnOK=GUICtrlCreateButton('&OK',24,385,136,40)
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $idRadios[0][0] to $idRadios[6][0]
    			$iRadioGrp0 = $nMsg - $idRadios[0][0]
    			ConsoleWrite($iRadioGrp0&' = ' &GUICtrlRead($idRadios[$iRadioGrp0][0],1)&@CRLF)
    			GUICtrlSetState($idRadios[7][1],$GUI_SHOW)		;evtl. versteckes mittleres Radio zeigen
    			GUICtrlSetState($idRadios[7][2],$GUI_SHOW)		;evtl. versteckes rechtes Radio zeigen
    			If GUICtrlRead($idRadios[$iRadioGrp0][0]) Then
    				$idRadios[7][1]=$idRadios[$iRadioGrp0][1]	;mittleres Radio merken
    				$idRadios[7][2]=$idRadios[$iRadioGrp0][2]	;rechtes Radio merken
    				GUICtrlSetState($idRadios[$iRadioGrp0][1],$GUI_UNCHECKED)	;verhindern von unsichtbar gecheckten Radios
    				GUICtrlSetState($idRadios[$iRadioGrp0][2],$GUI_UNCHECKED)	;verhindern von unsichtbar gecheckten Radios
    				;besser als Hide und Show wäre Disable und Enable ohne ist manuelles unckecken nötig
    				GUICtrlSetState($idRadios[$iRadioGrp0][1],$GUI_HIDE)
    				GUICtrlSetState($idRadios[$iRadioGrp0][2],$GUI_HIDE)
    			EndIf
    		Case $idRadios[0][1] to $idRadios[6][1]
    			$iRadioGrp1 = $nMsg - $idRadios[0][1]
    			ConsoleWrite($iRadioGrp1&' = ' &GUICtrlRead($idRadios[$iRadioGrp1][1],1)&@CRLF)
    		Case $idRadios[0][2] to $idRadios[6][2]
    			$iRadioGrp2 = $nMsg - $idRadios[0][2]
    			ConsoleWrite($iRadioGrp2&' = ' &GUICtrlRead($idRadios[$iRadioGrp2][2],1)&@CRLF)
    			;#cs
    		Case $idBtnOK
    			ConsoleWrite(@CRLF&'Checked Radios:'&@CRLF)
    			For $i=0 to 6
    				for $j=0 to 2
    					If GUICtrlRead($idRadios[$i][$j])=$gui_Checked Then ConsoleWrite(GUICtrlRead($idRadios[$i][$j],1)&' = checked'&@CRLF)
    				Next
    			Next
    			ConsoleWrite(@CRLF&'End Checked Radios End'&@CRLF)
    			;#ce
    		EndSwitch
    WEnd
    Alles anzeigen

    Durch das Hinzufügen des OK-Buttons bin ich darauf gestoßen, daß versteckte Radios geCHECKed sein können, deshalb vor dem Verstecken ein manuelles unCHECKen eingefügt.

  • Warum blinken meinen Button ?

    • autoBert
    • 25. April 2016 um 09:21

    Wenn eine abbildbare Logik dahintersteckt, ja.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™