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

  • TreeView macht Probleme

    • BugFix
    • 15. November 2009 um 16:18

    Na dann bleibt nur der etwas aufwändigere Weg über selbst zeichnen. :D
    Allerdings kann ich noch nicht sagen, ob CUSTOMDRAW auch für TreeView möglich ist, habe ich noch nie probiert. Wäre dann analog zu meiner ListView-Format UDF.

    Edit: Ja, gibt es auch für TreeView. Ich gucke mal, dass ich ein kleines Bsp. machen kann.

  • Pfadangabe - Was beachten?

    • BugFix
    • 15. November 2009 um 13:33

    1. Du brauchst den Aufruf der EXE natürlich mit Pfad
    2. Das Workingdir ist zwar ein optionaler Parameter, heißt aber nicht, dass man es deshalb weglassen kann. Viele Programme erfordern zwingend diese Angabe.
    Probier es so:

    [autoit]

    Run("C:\Program Files\UrbanTerror\ioUrbanTerror.exe", "C:\Program Files\UrbanTerror")

    [/autoit]
  • Fallende GUI

    • BugFix
    • 15. November 2009 um 13:08
    Zitat von DeepRed92

    Die normale Erdanzeihungskraft hat ja eine beschleunigung von 9.81 m/s². Wie kann ich das umsetzen?


    Mal besser gar nicht. :D
    Überleg selber:
    Start:
    v= 0 m/s
    a = 9,81 m/s²

    nach Sekunde1: v= 9,81 m/s
    zurückgelegter Weg (Weg-Zeit-Gesetz):
    s = 0,5 · a · t²
    s = 0,5 · 9,81 m/s² · 1 s²
    s = 4,95 m

    Da brauchst du aber einen gewaltig großen Bildschirm. :rofl:

  • WinAPI_SystemParametersInfo() für Dummies

    • BugFix
    • 15. November 2009 um 12:06

    Du solltest schon die Anweisungen in MSDN bis zum Ende lesen ;)

    [autoit]

    #include <WinAPI.au3>
    #cs
    The pvParam parameter must point to a DWORD variable that receives the setting.
    #ce
    Const $SPI_GETKEYBOARDSPEED = 10
    Local $vParam = DllStructCreate('dword')
    _WinAPI_SystemParametersInfo($SPI_GETKEYBOARDSPEED, 0, DllStructGetPtr($vParam))
    ConsoleWrite(DllStructGetData($vParam, 1) & @CRLF)

    [/autoit]

    Edit: Und das Setzen entsprechend mit dem Parameter $iParam

    [autoit]

    Const $SPI_SETKEYBOARDSPEED = 11
    Local $newSpeed = 20 ; <== der neue Wert, max ist 31
    Local $iParam = DllStructCreate('dword')
    DllStructSetData($iParam, 1, $newSpeed)
    _WinAPI_SystemParametersInfo($SPI_SETKEYBOARDSPEED, DllStructGetPtr($iParam))

    [/autoit]
  • MathEx UDF

    • BugFix
    • 15. November 2009 um 11:50
    Zitat von MatthiasG.

    Meinst du mit Ln zufälligerweise Log()?


    Log() wird (leider) auch zur Bezeichnung des natürlichen Logarithmus verwendet. Eindeutig ist aber Ln().
    Der natürliche Logarithmus verwendet als Basis die Eulersche Zahl.

    Dieser Logarithmus ist wohl einer der beliebtesten. :) Kann mich an viele Mathestunden erinnern, in denen wir bis zum Geht-Nicht-Mehr integriert und differenziert haben. Was mit diesem Log besser als mit allen anderen geht.

  • ADDIEREN MIT AUTOIT ?

    • BugFix
    • 15. November 2009 um 09:35
    Zitat von SEuBo

    Man muss dazu sagen, dass das Beispiel mE nach seeehr unglücklich gewählt ist. Das & verwirrt so manchen Neuling. Denn es wird nirgendwo erwähnt, dass man das &-Zeichen benutzt, um Texte (strings) mit Variablen / Zahlen zu "verknüpfen".


    Wenn man die Hilfe gründlich liest, ist das das erste, was man lernt. AutoIt kennt nur einen Datentyp: Variant. Alle Daten werden entsprechend des Funktionsaufrufs verwendet.

    Zitat von Hilfe - &lt;Language Reference&gt; &lt;Datatypes&gt;

    Some examples:

    10 * 20 equals the number 200 (* is used to multiply two numbers)

    10 * "20" equals the number 200

    "10" * "20" equals the number 200

    10 & 20 equals the string "1020" (& is used to join strings)

  • Wörter aus String extrahieren

    • BugFix
    • 14. November 2009 um 22:26

    Brauchst nicht die Pipe als Trenner, ein Leerzeichen tuts auch.

    [autoit]

    TCPSend($Connect, "$ACCNEU " & $ACCNEU & " $PWACCNEU " & $PWACCNEU & " $ACCNEUEMAIL " & $ACCNEUEM)

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

    $str = "$ACCNEU " & $ACCNEU & " $PWACCNEU " & $PWACCNEU & " $ACCNEUEMAIL " & $ACCNEUEM
    $aStr = StringSplit($str, ' ', 2)
    ; $ACCNEU => $aStr[1]
    ; $PWACCNEU => $aStr[3]
    ; $ACCNEUEM => $aStr[5]

    [/autoit]
  • ADDIEREN MIT AUTOIT ?

    • BugFix
    • 14. November 2009 um 22:20

    Du hast schon in der Shoutbox 2-mal die richtige Antwort bekommen:

    [autoit]

    $zahl1 = 5
    $zahl2 = 8
    $summe = $zahl2 + $zahl1

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

    ConsoleWrite('Summe: ' & $summe & @CRLF)

    [/autoit]
  • Geburtstag von Xeno

    • BugFix
    • 14. November 2009 um 18:37

    Auch wenn's etwas später kommt, so ist es doch nicht weniger ehrlich:
    Happy Birthday. ( Du junger Hahn :rofl: )
    Bleib wie du bist. :thumbup:

  • [gelöst] Netzwerkproblem...

    • BugFix
    • 11. November 2009 um 20:37

    Es kann durchaus sein, dass du einen kleineren MTU-Wert als 1492 benötigst. Du kannst deinen max. MTU ermitteln. Wie, das kannst du hier nachlesen.

  • Statistisches Erfassen

    • BugFix
    • 11. November 2009 um 17:51

    Wenn ich es richtig verstanden habe, brauchst du den Timestamp gar nicht zum Speichern, sondern du zählst nur?
    Dann reicht diese Version:

    Spoiler anzeigen
    [autoit]

    ; Objekt erstellen
    Global $oDict = ObjCreate("Scripting.Dictionary")

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

    ; Aufbau ist wie in einer INI, Schlüssel und Wert
    ; Schlüssel wir der Name und Wert wird der Zähler
    ; in deinem Programm erhältst du den "Namen" in einer Variablen, z.B. $Name
    $Name = 'Blub'

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

    ; für alle auftauchenden "Namen" rufst du _SetKey("Name") auf, dann wird der Name entweder hinzugefügt,
    ; oder falls bereits vorhanden, der Zähler erhöht

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

    Func _SetKey($KEY)
    If Not $oDict.Exists($KEY) Then ; "Name" noch nicht enthalten
    $oDict.Add($KEY, '1') ; erstmaliges Auftreten, also Counter = 1
    Else
    Local $count = $oDict.Item($KEY) ; die Anzahl zu diesem Key
    $oDict.Item($KEY) = $count +1 ; den Counter um 1 erhöhen und eintragen
    EndIf
    EndFunc

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

    ; die Anzahl kannst du jederzeit mit _GetCount("Name") abfragen
    Func _GetCount($KEY)
    If Not $oDict.Exists($KEY) Then Return SetError(1,0,0)
    Return $oDict.Item($KEY) ; Rückgabe Anzahl
    EndFunc

    [/autoit]
  • Statistisches Erfassen

    • BugFix
    • 11. November 2009 um 10:18

    Hier bietet sich das "Scripting.Dictionary" Objekt an.
    Ich hab mal ein Muster erstellt. Ungetestet, sollte aber laufen. ;)

    Spoiler anzeigen
    [autoit]

    ; Objekt erstellen
    Global $oDict = ObjCreate("Scripting.Dictionary")
    Global $Trenner = '|' ; kannst auch was anderes aber einmaliges nehmen

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

    ; Aufbau ist wie in einer INI, Schlüssel und Wert
    ; Schlüssel wir der Name und Wert wird einfach eine Zeichenkette mit den Timestamps separiert durch einen Trenner deiner Wahl
    ; und als erster Eintrag im Wert erscheint ein Zähler
    ; in deinem Programm erhältst du den "Namen" in einer Variablen, z.B. $Name
    $Name = 'Blub'
    $Stamp = 'DeinTimeStamp'
    ;....
    ;....
    If Not $oDict.Exists($Name) Then ; "Name" noch nicht enthalten
    $oDict.Add($Name, '1' & $Trenner & $Stamp
    Else
    Local $val = $oDict.Item($Name) ; der/die bereits existierenden Timestamps
    Local $split = StringSplit($val, $Trenner, 2)
    Local $Anzahl = $split[0] +1 ; Zähler erhöhen
    $val = $Anzahl
    For $i = 1 To UBound($split) -1 ; Value neu erstellen mit erhöhtem Zähler und neuem Stamp
    $val &= $Trenner & $split[$i]
    Next
    $val &= $Trenner & $Stamp
    $oDict.Item($Name) = $val ; den neuen Wert eintragen
    EndIf

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

    ; ======== gezielt die Anzahl abfragen, Aufrufen mit Parameter "Name" =====
    Func _GetCount($KEY)
    If Not $oDict.Exists($KEY) Then Return SetError(1,0,0)
    Local $val = $oDict.Item($KEY)
    Local $split = StringSplit($val, $Trenner, 2)
    Return $split[0] ; Rückgabe Anzahl
    EndFunc

    [/autoit]

    Wenn du die Daten auch über einen Programmstart hinaus verwalten möchtest, kannst du sie in eine INI wegschreiben und auch von dort wieder laden. Sieh dir dazu mal die Func's _IniWriteSectionFromObjDict und _IniReadSectionToObjDict aus meiner UDF zum Dictionary Object an (Klick auf meinen UDF-Link in der Signatur, dort findest du weiteres).

  • Carom3D - Session

    • BugFix
    • 10. November 2009 um 19:16

    Wir waren nicht sooo viel. Im günstigsten Fall zu viert. :D
    Aber hat schon Spaß gemacht, auch wenn ich nicht wirkliche Gegner hatte. :rofl:

  • DLL Open / Call zu langsam

    • BugFix
    • 10. November 2009 um 17:15
    Zitat von Chrischn

    Aber ne Erklärung oder ne Anwendung wär schon nicht schlecht.


    Schau mal in meine Signatur. Da findest du ein Tut. ;)

  • DLL Open / Call zu langsam

    • BugFix
    • 10. November 2009 um 16:40

    Die einzige Form der Beschleunigung: kurze Variablennamen verwenden. Wie wir feststellen konnten, braucht der Interpreter für längere Variablennamen auch länger zur Ausführung.

  • AZI UDF

    • BugFix
    • 10. November 2009 um 16:24
    Zitat von Nilo

    Hat denn niemand was für die UDF übrig?


    Wenn du dein Skript ausschließlich als gepackte Datei anhängst, wirst du wenig Resonanz haben. Dein Skript ist nicht groß, also poste es bitte direkt.
    Ich persönlich sehe mir Dateien fast ausschließlich online an. Wenn ich es erst noch herunterladen und entpacken muß ist mein Interesse dahin.. 8|

  • TreeView macht Probleme

    • BugFix
    • 9. November 2009 um 21:02

    Dann stell doch mal ein Stück Code rein, das man auch ausprobieren kann. Also GUI mit TreeView und Itemverwaltung. Hab keine Lust das selbst nachzubauen. :D

  • Screenshots via AutoIt ?

    • BugFix
    • 9. November 2009 um 20:59

    Wirf doch mal 'nen Blick in die Hilfe. ^^

  • TreeView macht Probleme

    • BugFix
    • 9. November 2009 um 20:57

    Ach, hatte ich jetzt nicht dran gedacht, da ich es kaum anwende: GUICtrlCreateTreeViewItem gibt die ID des Item zurück. Wenn du also damit deine Item erstellst, kannst du die ID's in einem Array auffangen und somit auch die Font und Colorfunktionen nutzen.

  • TreeView macht Probleme

    • BugFix
    • 9. November 2009 um 20:44

    Bekommst du ja:
    als Rückgabe von
    - _GUICtrlTreeView_Add oder _GUICtrlTreeView_AddChild
    - _GUICtrlTreeView_FindItem
    - _GUICtrlTreeView_GetSelection
    :whistling:

    Aber falls du GUICtrlSetFont, ...SetBkCol nutzen möchtest: Diese sind, wie schon gesagt NICHT für die Item zuständig, sondern nur für das Control (das TreeView).

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™