Es geht um die Reiter 'Dokumente' und 'und'.
Beim Klick auf Weiter nachdem ich MsgBox eingegeben habe, kommt der Fehler, dass die Datei nicht gespeichert weden kann und dass in Line224 $Vergleich[0] kein Array ist.
Beiträge von funkey
-
-
Hallo Matthias, wenn das Skript ausgereift ist, dann könnte es ganz schön hilfreich sein, aber noch gibt es einige Bugs.
Die temporäre au3-Datei wird irgendwie falsch geöffnet, deswegen kommt man auch nicht weit beim Testen, da das Skript schon beim ersten Klick auf 'Weiter' abstürzt. Anbei ein Screenshot
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Einmal $GUI_WS_EX_PARENTDRAG reicht
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <StaticConstants.au3>HotKeySet("{ESC}", "Terminate")
[/autoit] [autoit][/autoit] [autoit]$Gamebot = GUICreate("", 550, 550, Default, Default, $WS_POPUP)
[/autoit] [autoit][/autoit] [autoit]$Pic = GuiCtrlCreatePic(@DesktopDir & "/meinPic.gif",0,0,447,523, 0)
[/autoit] [autoit][/autoit] [autoit]$Button_1 = GUICtrlCreateButton("Button1", 30, 360, 110, 30)
[/autoit] [autoit][/autoit] [autoit]
$Button_2 = GUICtrlCreateButton("Button2", 155, 360, 110, 30)
$Button_3 = GUICtrlCreateButton("Button3", 280, 360, 110, 30)$Dummy = GUICtrlCreateLabel("",0,0,447,523,0,$GUI_WS_EX_PARENTDRAG)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
While 1
sleep(10)
$msg = GUIGetMsg()
Select
Case $msg = $Button_2
ExitLoopEndSelect
[/autoit] [autoit][/autoit] [autoit]
WEnd
ExitFunc Terminate()
[/autoit]
Exit
EndFunc -
Hab zurzeit keine Lust an meinen großen Projekten weitertzuarbeiten (Modul Trend-Viewer und Was haltet ihr davon?), deshalb schreibe ich auch manchmal kleine mehr oder weniger sinnlose Funktionen. Beurteilt selbst. Laut http://www.vbarchiv.net/tipps/tipp_70.html sollten damit 90% der Vornamen richtig zugeordnet werden. Vllt kann das mal jemand brauchen
Spoiler anzeigen
[autoit];Automatische Auswahl der Anrede für "Standard"-Namen
[/autoit] [autoit][/autoit] [autoit]Local $aNamen[10] = ['Andrea', 'Christian', 'Franz', 'Klaus', 'Maria', 'Julia', 'Elfriede', 'Lukas', 'Franziska', 'Julian']
[/autoit] [autoit][/autoit] [autoit]
Local $sMsg = ''For $i = 0 To UBound($aNamen) -1
[/autoit] [autoit][/autoit] [autoit]
$sMsg &= _GetAnrede($aNamen[$i]) & ' ' & $aNamen[$i] &@CRLF
NextMsgBox(64, 'Anrede', $sMsg)
[/autoit] [autoit][/autoit] [autoit]Func _GetAnrede($sName)
[/autoit]
;funkey
;http://www.vbarchiv.net/tipps/tipp_70.html
Switch StringRight($sName, 1)
Case 'a', 'e', 'i', 'o', 'u'
Return 'Frau'
Case Else
Return 'Herr'
EndSwitch
EndFunc
-
Ich sag nichts mehr zu dem Thema.
-
Du raubst mir den letzten Nerv und dann beim 100. Post schreibs du dann endlich was du willst. Du weißt hoffentlich, dass dieses Ergebnis dann falsch ist, da es ja Steuerzeichen mit Ascii 0 bis 9 gibt, aber mir jetzt egal. Hier:
Spoiler anzeigen
[autoit]MsgBox(0,"", __String2Binary('9'))
[/autoit] [autoit][/autoit] [autoit]Func __String2Binary($sString)
[/autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
If StringIsInt($aString[$i]) Then
$sRet &= ' ' &StringFormat('%008s', _TranslateSystem($aString[$i]))
Else
$sRet &= ' ' & StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
EndIf
Next
Return StringTrimLeft($sRet, 1)
EndFunc

-
Probierst du überhaupt den Code, den ich poste
Bei 2 kommt seit Post 14 immer 00110010 (50) heraus !!!! UND DAS WIRD DOCH WOHL PASSEN, ODER !!Hier noch einmal das ganze:
Mein letzter Nerv
[autoit]MsgBox(0,"", __String2Binary('2'))
[/autoit] [autoit][/autoit] [autoit]Func __String2Binary($sString)
[/autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= ' ' & StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
Next
Return StringTrimLeft($sRet, 1)
EndFunc
;===============================================================================
;
; Function Name: _TranslateSystem
; Description:: Wandelt eine Zahl zwischen verschiedenen Zahlensystemen um.
; Parameter(s): $zahl - Die Zahl zum Umwandeln
; $OldSystem - [Optional] Das alte System (Default: 10)
; $NewSystem - [Optional] Das neue System (Default: 2)
; Requirement(s):
; Return Value(s): Success: Number in new format and @extended set to SystemBase
; Error: -1.#NAN or -1.#IND
; @error set to:
; 1 - Zahl nicht richtig formatiert
; 2 - neues System nicht im darstellbaren Bereich
; 3 - altes System nicht im darstellbaren Bereich
; 4 - Zahl enthält Zeichen, die nicht im System vorkommen
; Author(s): Prog@ndy; sd (VB-Code)
; VB source used from http://www.vbarchiv.net/tipps/details.php?id=1590
;
;===============================================================================
;
Func _TranslateSystem($zahl, $OldSystem=10, $NewSystem = 2)
Local $out ;' Ausgabevariable
Local $temp ;' Temporäre Variable
$OldSystem = Int($OldSystem)
$NewSystem = Int($NewSystem)
Select
Case Not StringRegExp($zahl,"\A[0-9a-zA-Z]+\Z")
Return SetError(2,0,"-1.#NAN")
Case $NewSystem < 2 Or $NewSystem > 62
Return SetError(2,0,"-1.#IND")
Case $OldSystem < 2 Or $OldSystem > 62
Return SetError(3,0,"-1.#IND")
EndSelect
;' Zeichen der Zahlensysteme ( bis Hexadezimalsystem )
Local $chrsys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
If $OldSystem <> 10 Then
Local $CaseSense = ($OldSystem > 36)
Local $ziffern = StringSplit($zahl,""), $nummer
$zahl = 0
For $i = 1 To $ziffern[0]
$nummer = StringInStr($chrsys,$ziffern[$i],$CaseSense,1)
If $nummer > 0 Then $zahl += ($nummer-1)*($OldSystem^($ziffern[0]-$i))
If $nummer > $OldSystem Then Return SetError(4,0,"1.#NAN")
Next
EndIf
;' Solange bis Zahl = 0
While $zahl <> 0
;' Stelle der Zahl ermitteln
$temp = Mod($zahl, $NewSystem )
;' Zahl anhängen
$out = StringMid($chrsys, $temp + 1, 1) & $out
;' Integerdivision
$zahl = Int($zahl / $NewSystem)
Wend
SetExtended($NewSystem)
Return $out
EndFunc -
Zitat von team2way
es müsste was geben so das string und integer herausgelesen werden und dann einzeld behandelt werden
Natürlich geht das, aber wie willst du die Integer behandeln??
So könntst du Probleme mit den Ascii-Zeichen von 1 bis 9 bekommen:
[autoit]Func __String2Binary($sString)
[/autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
If StringIsInt($aString[$i]) Then
$sRet &= ' ' &StringFormat('%008i', $aString[$i])
Else
$sRet &= ' ' & StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
EndIf
Next
Return StringTrimLeft($sRet, 1)
EndFunc -
Ich verstehe nicht was da für Fehler auftreten sollen? Erklär das mal bitte!
Hier mal das mit der Leertaste
[autoit]Func __String2Binary($sString)
[/autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= ' ' & StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
Next
Return StringTrimLeft($sRet, 1)
EndFuncWürde mich freuen, wenn du dich selbst mal auch ein bisschen bemühen würdest.
Zitat von team2wayich hab mich nur gefragt ob das geht
Alles geht.
-
Zitat von team2way
lol ich sag doch die ganze zeit was ich vor hab...es geht um das umwandeln von text+zahlen in binärcode und andersrum
schaut euch mal das hier an:
http://www.ben-newman.de/com/bin.php
Genau das gleiche kommt doch bei meinem Skript heraus, also was geht da bitte nicht? Willst du auch noch das Leerzeichen zwischen den 8er-Blocks? Das kriegst du bestimmt selber hin! -
Wieso? Was willst du jetzt umwandeln? Strings oder Zahlen?
Für Zahlen reicht doch die Funktion _TranslateSystem

-
Du solltest dir das Beispiel anschauen und nicht nur den Befehl!
-
Schau dir mal das Beispiel zu _SendMessage an.
-
Hatte noch eine Denkfehler drin, sorry.
[autoit]Func __String2Binary($sString)
[/autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
Next
Return $sRet
EndFunc -
Also so ungefähr?
Hab zwar keine Ahnung wozu man das braucht, aber bitte.Spoiler anzeigen
[autoit]MsgBox(0,"", __String2Binary('bb'))
[/autoit] [autoit][/autoit] [autoit]Func __String2Binary($sString)
[/autoit] [autoit][/autoit] [autoit]
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= _TranslateSystem(Asc($aString[$i]), 16)
Next
Return $sRet
EndFunc;===============================================================================
[/autoit]
;
; Function Name: _TranslateSystem
; Description:: Wandelt eine Zahl zwischen verschiedenen Zahlensystemen um.
; Parameter(s): $zahl - Die Zahl zum Umwandeln
; $OldSystem - [Optional] Das alte System (Default: 10)
; $NewSystem - [Optional] Das neue System (Default: 2)
; Requirement(s):
; Return Value(s): Success: Number in new format and @extended set to SystemBase
; Error: -1.#NAN or -1.#IND
; @error set to:
; 1 - Zahl nicht richtig formatiert
; 2 - neues System nicht im darstellbaren Bereich
; 3 - altes System nicht im darstellbaren Bereich
; 4 - Zahl enthält Zeichen, die nicht im System vorkommen
; Author(s): Prog@ndy; sd (VB-Code)
; VB source used from http://www.vbarchiv.net/tipps/details.php?id=1590
;
;===============================================================================
;
Func _TranslateSystem($zahl, $OldSystem=10, $NewSystem = 2)
Local $out ;' Ausgabevariable
Local $temp ;' Temporäre Variable
$OldSystem = Int($OldSystem)
$NewSystem = Int($NewSystem)
Select
Case Not StringRegExp($zahl,"\A[0-9a-zA-Z]+\Z")
Return SetError(2,0,"-1.#NAN")
Case $NewSystem < 2 Or $NewSystem > 62
Return SetError(2,0,"-1.#IND")
Case $OldSystem < 2 Or $OldSystem > 62
Return SetError(3,0,"-1.#IND")
EndSelect
;' Zeichen der Zahlensysteme ( bis Hexadezimalsystem )
Local $chrsys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
If $OldSystem <> 10 Then
Local $CaseSense = ($OldSystem > 36)
Local $ziffern = StringSplit($zahl,""), $nummer
$zahl = 0
For $i = 1 To $ziffern[0]
$nummer = StringInStr($chrsys,$ziffern[$i],$CaseSense,1)
If $nummer > 0 Then $zahl += ($nummer-1)*($OldSystem^($ziffern[0]-$i))
If $nummer > $OldSystem Then Return SetError(4,0,"1.#NAN")
Next
EndIf
;' Solange bis Zahl = 0
While $zahl <> 0
;' Stelle der Zahl ermitteln
$temp = Mod($zahl, $NewSystem )
;' Zahl anhängen
$out = StringMid($chrsys, $temp + 1, 1) & $out
;' Integerdivision
$zahl = Int($zahl / $NewSystem)
Wend
SetExtended($NewSystem)
Return $out
EndFunc -
Probiers mal so:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate("My GUI radio", 200, 200) ; will create a dialog box that when displayed is centered
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreatePic('Bild.jpg', 0, -200, 200, 400, 0)$radio1 = GUICtrlCreateRadio("", 10, 10, 15, 15)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel('Radio 1', 30, 10, 100, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$radio2 = GUICtrlCreateRadio("", 10, 40, 15, 15)
GUICtrlCreateLabel('Radio 2', 30, 40, 100, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetState($radio2, $GUI_CHECKED)GUISetState() ; will display an dialog box with 1 checkbox
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
;~ MsgBox(64, 'Info:', 'You clicked the Radio 1 and it is Checked.')
Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
;~ MsgBox(64, 'Info:', 'You clicked on Radio 2 and it is Checked.')
EndSelect
WEnd -
Ich verwende diese Funktion hauptsächlich um Zahlen zu formatieren. Damit kann man super die Nullen vor dem Komma festlegen, und einstellen wieviele Nachkommastellen die Zahl haben soll.
-
Also da würde ich ControlSend bzw. ControlSetText verwenden, vllt auch ControlFocus. Die passendeControlID erhälst du mit dem Tool 'AutoIt Window Info'.
-
Schau dir den RegRead-Befehl in der Hilfe mal genauer an! Da brauchst du noch einen 2. Parameter

-
Das ist überhaupt nicht schwer, wenn du verrätst, welchen Chat du verwendest, dann können dir sicher User, die den selben haben, bestimmt mehr weiterhelfen als ich.
Mit dem Tool 'AutoIt Window Info' kannst du dein Chatfenster untersuchen, damit du die passenden ControlIDs bekommst. Es gibt einige Beispiele zu dem Befehlen hier im Forum. Es gibt auch schon irgendwo schon AFK-Skripts für einen Chat.