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. BugFix

Beiträge von BugFix

  • If ... Then ... EndIf

    • BugFix
    • 25. April 2010 um 12:48
    Zitat von Spunky

    Kürzer geht nicht?


    Aber klar:

    [autoit]

    Local $var = 7

    [/autoit][autoit][/autoit][autoit]

    Switch $var
    Case 0 To 4
    MsgBox(0, '', 'klein')
    Case 5 To 9
    MsgBox(0, '', 'groß')
    Case Else
    MsgBox(0, '', 'Variable ist falsch')
    EndSwitch

    [/autoit]
  • Probleme mit meinem Text Template Tool

    • BugFix
    • 25. April 2010 um 12:43

    Wenn du ein Edit-Ctrl (Input ist auch Edit-Class) als Ziel hast, ist der bessere Weg mit ControlSetText zu arbeiten.

  • Default zur Angabe eines optionalen Parameters führt zur Zuweisung von "Default"

    • BugFix
    • 25. April 2010 um 11:45
    Zitat von Dr.Doktor

    Wie nennt man denn dann die ganzen Schlüsselwörter (engl. keywords) in Autoit?


    All die angeführten Schlüsselwörter sind mit Ausnahme von 'Default' nicht allein existent sondern nur innerhalb eines Kontextes. (z.B. 'ContinueLoop' gibt es nur in einer Schleife, andere Schlüsselwörter analog)
    Insofern ist der Funktionsname: IsKeyword auch meiner Meinung nach nicht zutreffend, da nur 'Default' von der Funktion als zutreffend erkannt wird. Eine Umbenennung in IsDefault wurde zwar angeregt aber von den Devs abgelehnt. (Es könnten ja in Zukunft noch mehr Keywords existieren).

  • Automatisiertes bearbeiten von Einträge in Google Kalender

    • BugFix
    • 25. April 2010 um 10:30

    Ich würde da gar nicht soviel Energie drauf verschwenden um zu versuchen, die API mit AutoIt zu nutzen.
    1. Willst du wirklich freiwillig Daten an Google abdrücken?
    2. Die Wahrscheinlichkeit, dass diese API kostenfrei bleibt, sehe ich als nicht sehr groß an. Tante Google will auch nur Kohle machen und dann wird dasselbe passieren, wie mit der 'AdWords-API' - sie wird kostenpflichtig.
    3. Wenn du den Kalender unbedingt nutzen willst, synchronisiere ihn doch mit Outlook - dafür gibt es doch ein AddOn (habe ich irgendwo gelesen).

  • KeAnu Projekt - AutoIT Games

    • BugFix
    • 25. April 2010 um 09:56

    Pee hatte es schon angesprochen, aber irgendwie habt ihr ihn ignoriert. :whistling:
    Es gibt kein AutoIT - unsere Sprache heißt AutoIt. Und darauf legen wir großen Wert, da es sonst sinnverfälschend ist (IT= Informationstechnik; It= es - 'automatisiere es').

  • Bild das in der zwischenablage liegt abspeichern

    • BugFix
    • 25. April 2010 um 08:03
    Zitat von AutoBert

    warum werden die TAG's nicht mehr als Buttons zur Verfügung gestellt


    Du mußt die Javaskript-Optionen des Browsers anpassen. Gilt für alle Browser.

  • Funktionsparameter auf 'Default' abprüfen

    • BugFix
    • 24. April 2010 um 22:59
    Zitat von black_skorpi

    das hast du als antwort auf einen thread gemacht *hust*


    :thumbup: Ja warum nicht. Kannst du mal sehen, wie mich die Probleme anderer inspirieren. ;)

  • Funktionsparameter auf 'Default' abprüfen

    • BugFix
    • 24. April 2010 um 22:34

    Hi,
    in Funktionen ist es sinnvoll für optionale Parameter das Keyword 'Default' für den Aufruf zuzulassen. Andererseits ist es in vielen Standardfunktionen Usus für Defaults die '-1' oder einen Leerstring zu verwenden.
    Somit kann es sinnvoll sein, in eigenen Funktionen mehrere Defaults zuzulassen. Um die Abfrage zu vereinfachen habe ich die Funktion _IsDefault() erstellt.

    Mögliche Verwendung:

    [autoit]

    ConsoleWrite(_MyFunc('Klaus', '') & @CRLF)
    ConsoleWrite(_MyFunc('Fritz', -1, 'Peter') & @CRLF)
    ConsoleWrite(_MyFunc('Karla', Default, 'Susi') & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    Func _MyFunc($a, $b='Lisa', $c='Emil')
    If _IsDefault($b, '-1,', ',') Then $b = 'Lisa' ; gültig sind: -1, Leerstring u. Default
    Return $a & ' ' & $b & ' ' & $c
    EndFunc

    [/autoit]
    _IsDefault()
    [autoit]

    ;===============================================================================
    ; Function Name: _IsDefault($var, $sOtherDefaults='-0', $sDelim=Default)
    ; Description: Prüft ob Funktionsparameter mit einem/mehreren Defaultwert/en aufgerufen wurde
    ; Parameter(s): $var - auf Defaultwert zu prüfende Variable (auf 'Default' wird immer geprüft)
    ; optional $sOtherDefaults - trennzeichenbasierter String mit anderen Werten,
    ; die auch zur Erkennung als "Default" möglich sind
    ; optional $sDelim - Trennzeichen in $sOtherDefaults, Standard ist 'GUIDataSeparatorChar'
    ; Return Value(s): 1 - Variable wurde mit einem Default aufgerufen
    ; 0 - Variable enthält keinen Defaultwert
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _IsDefault($var, $sOtherDefaults='-0', $sDelim=Default)
    Local $aDef[1] = [0], $match = 0
    If IsKeyword($sDelim) Then $sDelim = Opt('GUIDataSeparatorChar')
    If $sOtherDefaults <> '-0' Then $aDef = StringSplit($sOtherDefaults, $sDelim, 1)
    If Not $aDef[0] Then Return IsKeyword($var)
    For $i = 1 To $aDef[0]
    If $var = $aDef[$i] Then $match = 1
    Next
    If Not $match Then Return IsKeyword($var)
    Return 1
    EndFunc ;==>_IsDefault

    [/autoit]

    Dateien

    _IsDefault.au3 1,38 kB – 242 Downloads
  • Default zur Angabe eines optionalen Parameters führt zur Zuweisung von "Default"

    • BugFix
    • 24. April 2010 um 20:46
    Zitat von Dr.Doktor

    Ist die Einstellung "es sollte der default-Wert abgefangen werden" also gut? Das ich es weiß wenn ich eigene Funktionen schreibe und sie veröffentliche.


    Dieser Ansatz ist auf jeden Fall richtig und gehört ja auch zum Errorhandling.
    Ich mache z.B. bei Parametern, die nur 2 Werte annehmen dürfen einen Defaultwert. Wird das Keywort "Default" (oder meist auch noch -1) verwendet, dann erhält der Parameter den Vorgabewert. In allen anderen Fällen wird der zweite mögliche Wert zugewiesen. So kann man auch fehlerhafte Aufrufe abfangen ohne zwingend mit einem Fehler abzubrechen.

    Edit:

    Zitat von Dr.Doktor

    Ansonsten werden ja keine Keywords über Funktionen übergeben oder? Wenn das zutrifft würde deine Version nämlich noch die Fälle abfangen wo jemand illegal ein Keyword verwendet, das würde es ein klein wneig praktischer machen, war das die Idee hinter dem isKeyword()?


    Es gibt bisher nur ein Keyword in AutoIt - "Default" (zumindest habe ich noch nichts Gegenteiliges gehört oder gelesen). ;)

  • Default zur Angabe eines optionalen Parameters führt zur Zuweisung von "Default"

    • BugFix
    • 24. April 2010 um 20:27

    Ich glaube, mit dem Default hast du das völlig falsch verstanden.
    Ein vorbesetzter Parameter wird NICHT standardmäßig verwendet, wenn du dafür "Default" übergibst. Damit das passiert, muß es vom Programmierer in der Funktion abgeprüft werden.

    Zitat von Hilfe

    For UDF's, it is the scripter's responsiblity to check if the parameter has been set to Default and to perform the desired behavior in this situation.

    Default läßt sich wie folgt abfragen:

    [autoit]

    ConsoleWrite(_MyFunc(1,Default) & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    Func _MyFunc($a, $b=10, $c=20)
    If IsKeyword($b) Then $b = 10
    Return $a + $b + $c
    EndFunc

    [/autoit]
  • Bug in SciTE?

    • BugFix
    • 24. April 2010 um 14:23
    Zitat von DeepRed92

    Doch das geht nur, wenn ich die Befehle klein schreibe!

    Wenn du es Großbuchstaben möchtest, mußt du auch Großbuchstaben bei den Abbrevs hinterlegen.
    Wobei ich den Sinn nicht verstehe. Um groß zu schreiben muß ich doch extra die Shifttaste drücken. :wacko:

    BTW:
    Abbrevs sind keine Hotkeys. Es wird die Zeichenfolge bei der Eingabe verglichen, deshalb hat Groß- Kleinschreibung auch Auswirkung auf die Erkennung.

  • Eigene AutoIt-Erweiterung in SciTE

    • BugFix
    • 24. April 2010 um 14:21

    Du mußt sicher in den properties noch Anpassungen vornehmen. Dort verweist ja alles auf *.au3 ;)

  • GeekTime

    • BugFix
    • 24. April 2010 um 14:09
    Zitat von Andy

    Wo bleibt "Viertel Sieben"? (Ich weiss bis heute noch nicht, welche Uhrzeit das sein soll...)

    :rofl: Das ist doch logisch: Ein-Viertel-von-Sieben, ergo 6:15 Uhr. ;)

  • Eigene AutoIt-Erweiterung in SciTE

    • BugFix
    • 24. April 2010 um 13:32

    Für jeden Dateityp gibt es eine TYP.properties - Datei. Kopiere einfach die au3.properties unter dem Namen class.properties. Aber schau mal, ob noch weitere Verknüpfungen sind. Ich denke mal die api wäre auch noch notwendig.

  • Anfänger UDF

    • BugFix
    • 24. April 2010 um 13:12

    Ich sehe das nicht als Erleichterung an. Es wirkt eher gegenteilig.
    Der Sinn von Funktionen liegt im Allg. darin, dass durch Tausch von Parametern verschiedene Aktionen ausgeführt werden können.
    Somit kann ich mit EINER Funktion Hide, Show, Enable, Disable setzen und brauch nicht 4!! :S

  • Vorschlag - Treffen?

    • BugFix
    • 23. April 2010 um 20:22

    Eines sollte man nicht vergessen: Wenn man (z.T. über Jahre) miteinander per Internet kommuniziert entwickelt man eine Vorstellung von seinem Gegenüber, die selten mit der Realität übereinstimmt.
    Jahrelang gepflegte Internetfreunschaften können so in Kürze zerplatzen. Das muß nicht sein - kann aber. :wacko:
    Also sollte man überlegen, ob es das Risiko wert ist.

  • Vorschlag - Treffen?

    • BugFix
    • 23. April 2010 um 20:04

    Wieso kommen die Leute IMMER am 23.4. eines Jahres auf die Idee ein Usertreffen abzuhalten: User-Treffen :rofl:

  • Log-File von ShoutBox

    • BugFix
    • 21. April 2010 um 23:41

    Hi,
    ihr kennt das alle: Man muß für 'ne Weile weg vom PC - möchte aber gern alles, was in der SB passiert mitbekommen.
    Ich hab jetzt mal ein kleines Logprogramm geschrieben, dass alle Änderungen mitschreibt.
    Ich hab es ohne Login gemacht, Whispern wird also nicht erfasst. Vielleicht kann es ja wer brauchen.

    Edit: Da ich bei Programmstart einen Datumseintrag mache, hatte ich nicht bedacht, dass dieser (letzte) Eintrag dazu führt, dass alles als neu angesehen wird. Jetzt korrigiert.
    Und einen weiteren Fehler beseitigt: Anfangs war der gestrige Tag noch als 'Heute' zu sehen, aber später wurde es dann doch zu 'Gestern'. Wird jetzt korrekt erkannt.

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet('!+e', '_exit') ; (Shift+Alt+e) <== nach Bedarf anpassen
    Func _exit()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Local $lastline = '', $pathLOG = @ScriptDir & '\SBautoit.log'
    If Not FileExists($pathLOG) Then
    FileWrite($pathLOG,@YEAR & '-' & @MON & '-' & @MDAY)
    Else
    $lastline = FileReadLine($pathLOG, 1)
    _FileWriteToLine($pathLOG, 1, @YEAR & '-' & @MON & '-' & @MDAY)
    EndIf
    Local $refresh_sec = 40 ; <== Refresh-Time, aber weniger als 40 sec ist nicht sinnvoll

    [/autoit] [autoit][/autoit] [autoit]

    Local $url = 'http://www.autoit.de/index.php?page=ShoutboxContent'
    Local $aSpecialChr[14][2] = [['Ä','Ä'],['Ö','Ö'],['Ü','Ü'],['ä','ä'],['ö','ö'],['ü','ü'],['ß','ß'], _
    ['â','µ'],['¬','€'],['&quot;','"'],['&lt;','<'],['&gt;','>'],['&amp;','&'],['§','§']]
    Local $patSmilies = '(\<img src="wcf/images/smilies/.+\..+" alt=")(.+)(" />)'
    Local $patCol = '\<strong>\<font color=".+">(.+)\</font></strong>:'
    Local $patUrl = '(\<a href=".+" target=".+">)(.+)(\</a>)'
    Local $patCont = '\<span class="light">\[.+, (\d{1,2}:\d{2}).+\r\n\t(.+)\r\n(.+)\</span>'
    Local $aRet, $currContent, $aCurrent, $cnt = 0, $sNew, $indx

    [/autoit] [autoit][/autoit] [autoit]

    While True
    $t = TimerInit()
    $currContent = StringRegExpReplace(StringRegExpReplace(StringRegExpReplace(BinaryToString(InetRead($url, 1)), _
    $patCol, '$1'), $patSmilies, '$2'), $patUrl, '$2')
    $aRet = StringRegExp($currContent, $patCont, 3)
    $currContent = ''
    For $i = 0 To UBound($aRet) -1
    $cnt += 1
    If $i = 0 Or Mod($i, 3) = 0 Then
    $currContent &= '[' & $aRet[$i] & '] '
    ContinueLoop
    EndIf
    For $j = 0 To 13
    $aRet[$i] = StringRegExpReplace($aRet[$i], $aSpecialChr[$j][0], $aSpecialChr[$j][1])
    Next
    $currContent &= $aRet[$i] & ' '
    If $cnt = 3 Then
    $currContent &= @CRLF
    $cnt = 0
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $aCurrent = StringSplit($currContent, @CRLF, 1)
    If $lastline = '' Then
    $indx = UBound($aCurrent)
    Else
    $indx = _ArraySearch($aCurrent, $lastline)
    EndIf
    If $indx > 1 Then
    $sNew = ''
    For $i = 1 To $indx -1
    $sNew &= $aCurrent[$i] & @CRLF
    Next
    _FileWriteToLine($pathLOG, 1, StringTrimRight($sNew, 2))
    $lastline = FileReadLine($pathLOG, 1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(1000)
    Until Int(TimerDiff($t)/1000) >= $refresh_sec
    WEnd

    [/autoit]

    Dateien

    SB_Logging.au3 2,45 kB – 208 Downloads
  • 2. GUI lässt sich nicht schliessen.

    • BugFix
    • 21. April 2010 um 11:06

    Es geht so (die While-Schleife hat in der Funktion nix verloren):

    Spoiler anzeigen
    [autoit]

    Global $hGUI2
    opt("GUIOnEventMode", 1) ;Enable events on GUI

    [/autoit] [autoit][/autoit] [autoit]

    _Main()

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Main()
    $hGUI1 = GUICreate('GUI 1')
    GUISetOnEvent(-3, 'exitMain')
    $bt = GUICtrlCreateButton('Umbauhilfe', 10,10,80,20)
    GUICtrlSetOnEvent(-1, 'SecondGUI')
    GUISetState()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func exitMain()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func SecondGUI()
    $hGUI2 = GUICreate("Umbauhilfe", 700, 700, 10, 10) ;Create GUI
    GUISetOnEvent(-3,"CloseSecondGUI",$hGUI2)
    GUICtrlCreatePic("Testbild.jpg",0,0,700,700)
    GUISwitch($hGUI2)
    GUISetState() ; Display the GUI
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CloseSecondGUI()
    GUIDelete($hGUI2)
    EndFunc

    [/autoit]
  • Slider wert auslesen

    • BugFix
    • 21. April 2010 um 10:51
    Zitat von SouthCatch

    ich möchte das MAX limit auslesen !


    Wozu? Das setzt du doch selbst fest. :S

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™