Wenn ich nicht irre, ist es italienisch. Genauso spricht nämlich mein Kollege - und der ist Italiener. ![]()
Beiträge von BugFix
-
-
Das zweimal ENTER verstehe ich nicht, wozu?
Weshalb soll die Datei offen (also im Editor) sein? Dann kann man ja nichts eintragen?
Mal als Ansatz:Spoiler anzeigen
[autoit]; === Fenstererkennung an Teilen des Titels
[/autoit] [autoit][/autoit] [autoit]
Opt("WinTitleMatchMode", 2); === Hotkey zum Skript Beenden
[/autoit] [autoit][/autoit] [autoit]
HotKeySet('^!e', '_ende') ; === STRG + ALT + e; === Variable zum Speichern des letzten Clipboardinhalts
[/autoit] [autoit][/autoit] [autoit]
Local $sClipOld = '', $sClipWhile True
[/autoit] [autoit][/autoit] [autoit]
If WinExists("C:\Tools\Zwischenablage.txt") Then
$sClip = ClipGet()
If $sClip <> $sClipOld Then
$sClipOld = $sClip
; in Datei schreiben
; Send geht nicht, da Datei im Hintergrund sein soll (warum soll sie überhaupt offen sein?)
; zum Schreiben muß die Datei geschlossen werden, dann kann mit Filewrite der Inhalt von
; $sClip geschrieben werden.
EndIf
EndIf
Sleep(100)
WEndFunc _ende()
[/autoit]
Exit
EndFunc -
Mal die AGB gelesen?
Zitat1.2.9 Die Nutzung der Spiele und Services ist nur mittels eines Internetbrowsers oder spezieller, von der Bigpoint GmbH zur Verfügung gestellter oder ausdrücklich zugelassener Tools zulässig („Verbot der Nutzung nicht autorisierter Skripte“). Dies bedeutet insbesondere: Die Verwendung von Programmen, die eine übermäßige Belastung des Servers erzeugen, ist unzulässig. Der Einsatz von Software zur systematischen oder automatischen Steuerung der Spiele oder einzelner Spielfunktionen (Bots, Makros), zur Reproduktion oder Auswertung der Spiele, Spielelemente oder der auf der Plattform Bigpoint eingestellten Inhalte ist unzulässig.
-
Schau mal folgendes Skript an, da findet sich sicher was für deine Zwecke:
https://autoit.de/index.php?page…67020#post67020 -
Schau mal in die Hilfe:
- IniRead
- IniWrite
- WinActivate -
Finde den Link leider nicht mehr.
Aber etwas wirklich interaktives zu skripten ist nicht gerade einfach. Das geht nur solange recht gut, wie die Aufgabenstellung eine geringe und leicht zu überprüfende Zahl an Lösungsvarianten zuläßt.

Ich wünsch euch auf jeden Fall viel Spaß. -
Betreff der geschweiften Klammern hast du recht, die hab ich glatt vergessen.
Aber sowohl bei geschweifter als auch bei eckiger Klammer muß nur die öffnende Klammer maskiert werden. Die schließenden Klammern alleinstehend werden von der Regex-Engine als normale Zeichen behandelt. Probier es aus - gibt keine Fehler.Neue Version in Post 1.
Habe den Tipp von progandy umgesetzt. -
Kann mich erinnern, dass es im EN-Forum mal sowas gab. Vielleicht finde ich es noch.
-
Am besten ist es Koda gar nicht zu verwenden. Wozu hat man einen Kopf zum Rechnen ;). Und wenn man es per Hand macht, spart man sich auch die Hälfte weglöschen zu müssen (nutze mal OnEvent mit Koda :wacko: ).
Ich verwende Koda max. um einen groben Entwurf zu erstellen, Feinschliff auf jeden Fall von Hand. -
Rein interessehalber: Warum ist denn ']' nicht bei den Metachars?
Und was ist mit '{' und '}' ?
Weil diese Zeichen keine besondere Bedeutung haben. Ausschließlich die 11 aufgeführten Zeichen haben eine Doppelfunktion und müssen deshalb maskiert werden. -
Wer mit SQL arbeitet kennt LIKE, um maskiert zu suchen.
In AutoIt können wir das mit RegEx erledigen. Da damit doch so mancher seine Probleme hat, habe ich die Syntax von LIKE verwendet ('_' =Platzhalter für ein beliebiges Zeichen an dieser Stelle; % =Platzhalter für eine beliebige Zahl von Zeichen, auch 0) und setze das intern in eine Regex-Prüfung um.
Im Unterschied zu LIKE, das immer case-sensitiv ist, kann hier die Sensitivität gewählt werden. Standard ist False.Edit3:
Erweiterung:
Der zu prüfende String kann jetzt auch Zeilenumbrüche (@CR oder @CRLF) enthalten.Edit2:
War noch ein Fehler drin beim An-/Abschalten der Metacharacter Erkennung.Edit:
Habe progandys Hinweis jetzt eingearbeitet._Search_LIKE( )
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Local $aTest[5] = [60123,62345,54175,62340,'C:\Code\Test.au3']For $i = 0 To 4
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If _Search_LIKE($aTest[$i], '6%') Then ConsoleWrite('erste Position eine 6 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '6%0') Then ConsoleWrite('erste Position eine 6, letzte eine 0 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '__1%') Then ConsoleWrite('dritte Position eine 1 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '__3%') Then ConsoleWrite('dritte Position eine 3 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '%test.au3') Then ConsoleWrite('test.au3 im Pfad - ' & $aTest[$i] & @CRLF)
ConsoleWrite(@CRLF)
Next;===============================================================================
[/autoit]
; Function Name: _Search_LIKE($sTest, $sMask, $fCasesens=False)
; Description: Prüft String auf Übereinstimmung mit Suchmaske
; Parameter(s): $sTest - der zu prüfende String
; Requirement(s): $sMask - die Suchmaske, analog zu LIKE in SQL
; _ =Platzhalter f. EIN beliebiges Zeichen an dieser Stelle,
; % =Platzhalter f. eine beliebige Menge von Zeichen
; $Casesense - False (Standard), nicht case-sensitiv
; Return Value(s): 1 - Übereinstimmung mit Suchmaske
; 0 - keine Übereinstimmung
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _Search_LIKE($sTest, $sMask, $fCasesens=False)
Local $pattern = '^'
If Not $fCasesens Then $pattern &= '(?i)'
$pattern &= '\Q' & StringRegExpReplace($sMask, '\\E', '\\E\\\\E\\Q')
$pattern = StringRegExpReplace(StringRegExpReplace($pattern, '%', '\\E.*\\Q'), '_', '\\E.\\Q') & '\E\z'
$sTest = StringRegExpReplace($sTest, '\r\n|\r', ' ')
Return StringRegExp($sTest, $pattern)
EndFunc ;==>_Search_LIKE -
Es geht kürzer:
[autoit]Local $checkbox[75]
[/autoit][autoit][/autoit][autoit]Local $Form1 = GUICreate("Form1", 875, 600, -1, -1)
[/autoit][autoit][/autoit][autoit]
Local $top = 75
Local $left = 25
For $i = 0 To UBound($checkbox) - 1
Switch $i
Case 15, 30, 45, 60
$left += 175
$top = 75
EndSwitch
$checkbox[$i] = GUICtrlCreateCheckbox("checkbox" & $i, $left, $top, 175, 17)
$top += 20
NextGUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While True
[/autoit]
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd -
Sowas aber auch
, bisher konnte ich mich erfolgreich um OOP drücken, weil es in AutoIt nicht verfügbar war und nun DAS! 
Scherz beiseite, tolle Arbeit, die da geleistet wurde.
Nun woll'n wir mal schauen, wo uns das das Leben erleichtern kann.
-
Bsp.:
[autoit]MsgBox(0, '', _Repeat('a', 5))
[/autoit][autoit][/autoit][autoit]
MsgBox(0, '', _Repeat('a', 10))
MsgBox(0, '', _Repeat('a', 15))Func _Repeat($string, $count)
[/autoit]
Local $out = ''
For $i = 1 To $count
$out &= $string
Next
Return $out
EndFunc -
Mit Stringfunktionen:
[autoit]$s = 'C:\\Programme\Hersteller\Bin\Application.exe'
[/autoit]
$s = StringTrimLeft($s, StringInStr($s, '\', 1, -1)) -
Wichtig - unbedingt als eindeutigen Schlüssel eine ID vergeben. Alle anderen Angaben können redundant sein.
-
-
Da scheint es Unterschiede in den Excel-Versionen zu geben.
Bei meinem Excel (Office 2000) kann ich Formeln auch ohne .Formula übergeben, da diese durch das führende = als solche identifiziert werden. Fehlermeldung erhalte ich dabei nicht.
Aber es ist natürlich korrekt, eine Formel auch als solche zu kennzeichnen.
-
Sorry, wenn ich den Thread mal hijacke:
Einhaltung von http://www.autoitscript.com/autoit3/scit…F_Standards.htm
Diesen Punkt möchte ich mal aufgreifen.
Ich verfolge im EN-Forum seit einiger Zeit Beiträge, in denen es um Sinn (oder besser Unsinn) der Verwendung Globaler Variablen geht und auch generelle Empfehlungen, wann und wie deklariert werden soll:
In den UDF-Richtlinien findest du folgendes:ZitatAll variables must be declared at the beginning of the UDF with a “Local” scope and before they are used for the first time.
In einem Beitrag von Valik fand ich folgenden Hinweis:Zitat..don't front-load your functions with all the variable declarations. Declare variables right before they are used.
Hier scheinen sich die Devs nicht ganz einig zu sein. Wobei Valiks Hinweis mir sinnvoller erscheint. Eine kopfgeführte Deklaration aller zu nutzenden Variablen ist zwar "schön" anzusehen, macht aber keinen tieferen Sinn. Die Deklaration bei erster Verwendung mit gleichzeitiger Wertzuweisung ist da effektiver.Ich kann mich erinnern, dass wir vor langer Zeit schon mal eine Diskussion zum Thema Standards in AutoIt hatten, da ja der User ziemlich frei ist, bei dem was er tut.
Unter dem Aspekt, dass man Globale Variablen tunlichst vermeiden sollte (nähere Erläuterung hier), wär es vielleicht sinnvoll sich damit nochmals zu befassen (aber in einem eigenen Thread ;)). -
$oSheet.Range("A2:A10")
Das ist absolut identisch mit "='Mein Sheet'!Z2S1:Z10S1", nur das einmal die Adressierung über das Objekt und das andere mal über die Formelsyntax erfolgt.