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

Beiträge von nuts

  • Art Coverflow in Autoit

    • nuts
    • 26. November 2009 um 19:46

    Auch eine Spiegelung sollte möglich sein.
    Mit GDI+ gehts, mit der Irrlciht-Engine keine Ahnung.

  • Art Coverflow in Autoit

    • nuts
    • 26. November 2009 um 19:35

    Schau mal hier rein: Game Launcher
    Ist jetzt aber nicht ganz soooo einfach. Mit GDI+ gehts sicherlich auch.

  • Wie sollen AutoIt Scripte untereinander kommunizieren?

    • nuts
    • 26. November 2009 um 15:42

    Ja, wollte den Server schonen (der hats ja grad eh schwer).
    Müsste doch hier oder im englischen Forum zu finden sein?

  • Wie sollen AutoIt Scripte untereinander kommunizieren?

    • nuts
    • 26. November 2009 um 14:00

    Bsp (Skripte natürlich noch trennen):

    Spoiler anzeigen
    [autoit]


    ;Script2 -> Sender
    #include "MessageHandler.au3"

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

    $Local_ReceiverID_Name = "Script2sReceiverID";This is the ID that the other script will use to send data
    $Remote_ReceiverID_Name = "Script1sReceiverID";This is the ID of the script we want to send data too

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

    $hwnd = _SetAsReceiver($Local_ReceiverID_Name)
    ConsoleWrite("hwnd of the Local_ReceiverID_Name is " & $hwnd & @crlf)
    $myFunc = _SetReceiverFunction("_MyFunc2")
    ConsoleWrite("My data receiver function is " & $myFunc & @crlf)

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

    $Str = InputBox(@ScriptName," I am " & @ScriptName & @crlf & "Enter some data to be sent to the other script")

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

    $iSent = _SendData($Str,$Remote_ReceiverID_Name)

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

    While 1
    sleep(100)
    WEnd

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

    Func _MyFunc2($vText)
    Msgbox(0,@ScriptName,@ScriptName & " has received a message" & @crlf & $vText)
    Exit
    EndFunc

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

    ;Script1 -> Empfänger
    #include "MessageHandler.au3"

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

    $Local_ReceiverID_Name = "Script1sReceiverID";This is the ID that the other script will use to send data
    $Remote_ReceiverID_Name = "Script2sReceiverID";This is the ID of the script we want to send data too

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

    $hwnd = _SetAsReceiver($Local_ReceiverID_Name)
    ConsoleWrite("hwnd of the Local_ReceiverID_Name is " & $hwnd & @crlf)
    $myFunc = _SetReceiverFunction("_MyFunc2")
    ConsoleWrite("My data receiver function is " & $myFunc & @crlf)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _MyFunc2($vText)
    Msgbox(0,@ScriptName,"I am " & @ScriptName & " I have received some data" & @crlf & @crlf & $vText & @crlf & @crlf & "And now I'm sending the data back")
    $iSent = _SendData($vText,$Remote_ReceiverID_Name)
    Exit
    EndFunc

    [/autoit]
  • Warum geht das Nicht - Hat Autoit fehler?

    • nuts
    • 26. November 2009 um 13:35

    Mal ein Bsp. mit Sinus für den Wertebereich 0-3:

    [autoit]


    Global Const $pi = 4 * ATan(1)
    global $calc
    for $i = 1 to 20 ; für $i gegen +/- unendlich bewegt sich $calc immer zwischen 0 und 3
    $calc = 1.5*sin($i*$pi/2)+1.5 ;die Amplitude (Distanz bei dir) wäre innerhalb der Sinusfunktion zu beeinflussen.
    ConsoleWrite($calc & @CRLF)
    next

    [/autoit]
  • Shutdown überprüfen?

    • nuts
    • 25. November 2009 um 13:08

    Einfach das Skript in den Autostart schieben?

  • Warum geht das Nicht - Hat Autoit fehler?

    • nuts
    • 25. November 2009 um 13:03
    Zitat von moritz1243


    Das Script ist teil meine projektes und dient dazu ein Objekt in Raum hin un her zu bewegen.


    Ohne dein Skript genau zukennen, aber wäre eine Sin / Cos Funktion ohne die Umkehr nicht besser?
    Mit If ... then braucht die ganze Funktion länger, ist zwar nur minimal, könnte aber zum Ruckeln führen.

    Das Problem bleibt trotzdem, eine Erklärung wäre interessant.

  • Warum geht das Nicht - Hat Autoit fehler?

    • nuts
    • 25. November 2009 um 09:50

    Könntest du das nochmal langsam erklären? :wacko:
    Die Bewegung wird doch in Zeile 38-40 berechnet. Wieso sollte man sich zwischen Start und Zielpunkt nur in ganzen Zahlen bewegen dürfen?

    edit \ Also am Array liegts schonmal nicht. Der Rechenfehler tritt auch bei einfachen Variablen auf.

    Mal das Problem vereinfacht - bei nicht ganzzahliger Bewegung kommt es zum Fehler -> Nur warum?

    Spoiler anzeigen
    [autoit]


    global $X = 0
    Global $Y = 9 ;Bei 10 funktionierts, da $Step ganzzahlig wird
    global $step = ($y-$x)/5
    global $pos = $x

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

    Hotkeyset("{ESC}", "_Exit")
    func _exit()
    Exit
    endfunc

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

    while 1
    _Calc()
    Sleep(150)
    wend

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

    Func _Calc()
    $pos += $step
    if $pos = $x or $pos = $y then $step = -$step
    ConsoleWrite($pos & @CRLF)
    EndFunc

    [/autoit]
  • Shutdown überprüfen?

    • nuts
    • 25. November 2009 um 00:57

    Ja genau, dass ist nur ein Bsp. aus meinem Archiv (Zweck haste richtig erkannt) für WM_POWERBROADCAST damit du heute nacht bissle basteln kannst.
    Das ist mit den neueren OS etwas "verwirrend" geworden.

  • Shutdown überprüfen?

    • nuts
    • 25. November 2009 um 00:37

    Unter Vista / Win7 (WinXP SP3?) können Anwendungen einen Systembefehl wie "Ruhezustand" nicht mehr verhindern/verzögern.
    D.h. mit den 10 Sekunden verzögern wirds schwierig.

    Den Befehl zum Ruhezustand abfangen geht über WM_POWERBROADCAST
    Vielleicht hilft das hier: http://msdn.microsoft.com/en-us/library/aa373247(VS.85).aspx ?

    Bsp. wie man WM_POWERBROADCAST verwenden kann:

    Spoiler anzeigen
    [autoit]


    Global $WM_POWERBROADCAST = 536
    Global $PBT_APMRESUMESUSPEND = 0x0007

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

    $hGUI = GUICreate("", 1, 1, 1, 1)
    GUIRegisterMsg($WM_POWERBROADCAST, "Standby")
    GUISetState(@SW_HIDE, $hGUI)

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

    While 1
    $GUIMsg = GUIGetMsg()
    Switch $GUIMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func Standby($hWnd, $Msg, $wParam, $lParam) ;für die aktion nach dem standby/ruhezustand
    Switch $wParam
    Case $PBT_APMRESUMESUSPEND
    MsgBox(1, "", "Bin grad aufgewacht")
    Exit
    EndSwitch
    EndFunc ;==>Standby

    [/autoit]

    Edit \ Bzw. verhindern könnte noch klappen.
    Befehl abfangen -> verhindern -> Aktionen -> warten -> selbst den Ruhezustand auslösen.

  • Warum geht das Nicht - Hat Autoit fehler?

    • nuts
    • 25. November 2009 um 00:24

    Probiers doch mal aus :)
    Beim Rechnen mit den Arraywerten wird $animator_array[$i][9]) nichtmehr 0 (warum auch immer) und die Vektoren werden nichtmehr umgedreht.

  • Warum geht das Nicht - Hat Autoit fehler?

    • nuts
    • 25. November 2009 um 00:14

    Also verstehen tu ichs auch nicht.
    Workaround:

    [autoit]


    Func zeichne_particle()

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

    For $i = 0 To UBound($animator_array) - 1

    $animator_array[$i][9] += ($animator_array[$i][6]) ; X Bewegung
    $animator_array[$i][10] += $animator_array[$i][7] ; Y Bewegung
    $animator_array[$i][11] += $animator_array[$i][8] ; Z Bewegung
    If ($animator_array[$i][0] =Round($animator_array[$i][9],1)) Or ($animator_array[$i][3] = $animator_array[$i][9]) Then ; Wenn Start- oder Zielpunkt erreicht wurden.
    _ArrayDisplay($animator_array)
    If $animator_array[$i][12] = False Then
    MsgBox(0,"","")
    particle_delete_effect($i)
    $i -= 1
    Else
    $animator_array[$i][6] = -1*$animator_array[$i][6]
    $animator_array[$i][7] = -1*$animator_array[$i][7]
    $animator_array[$i][8] = -1*$animator_array[$i][8]
    EndIf
    EndIf

    Next
    EndFunc

    [/autoit]

    Edit \ Gibt das eine grafische Bewegungsdarstellung?
    Weil diese If ... Then Bedingung erzeugt dann ein Ruckeln (imho bin auch GDI+ Anfänger).
    Vielleicht besser gleich auf eine Sin / Cos Funktion ausweichen?

  • TerminPlaner

    • nuts
    • 24. November 2009 um 18:43

    Design nicht im grafischen Sinn sondern im Skriptaufbau. 8)

  • TerminPlaner

    • nuts
    • 24. November 2009 um 18:36

    Ist nett gemacht.
    Es gibt ein paar Bug's, die imho ein Designfehler sind.
    z.B. beim Beenden eines Alarms.
    Ich würde alle Variablen, die innerhalb der Funktionen benutzt, jedoch nicht innerhalb deklariert werden, am anfang global deklarieren.

  • Zweimal MouseGetPos() in einem Script

    • nuts
    • 24. November 2009 um 17:32

    Zeile 6 & 7 :D
    Du musst auch $Pos2 auswerten ;)

    [autoit]


    $pos = MouseGetPos()
    $x1 = $pos[0]
    $y1 = $pos[1]
    Sleep(3000)
    MouseMove($x1+100, $y1 +50)
    $pos2 = MouseGetPos()
    $x2 = $pos2[0]
    $y2 = $pos2[1]
    MsgBox(0, "Punkte", $x1 & " " & $y1 & " " & @LF & " " & $x2 & " "& $y2)

    [/autoit]
  • c#(break:) in autoit?

    • nuts
    • 24. November 2009 um 17:13

    Also bei mir wird nichts hell :D
    Sobald eine Bedingung in Switch ... Endswitch erfüllt wird, wird die Schleife verlassen.
    Ausnahme: ContinueCase (wofür mir bis heute noch keine sinnvolle Anwedungsmöglichkeit eingefallen ist)

  • Allgemeine Frage zu RegExp

    • nuts
    • 23. November 2009 um 00:10

    Mit _ArrayAdd haste jetzt eben die Redim-Bremse (um die ich mich, zugegeben wenig elegant, rumgemogelt habe) doch eingebaut.
    Du könntest auch das return Array mit UBound($Matches) -1 deklarieren, befüllen und anschließend einmal Redimen.
    Oder so ein Stringgebastel (das geht bestimmt noch besser ...).

    P.S. Der Regexbuddy ist ja cool 8o

  • Allgemeine Frage zu RegExp

    • nuts
    • 22. November 2009 um 23:11

    Hm was habt ihr denn da für tolle Progs.? Demnach stimmt das Pattern.

    Noch ein versuch zu später Stunde.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $String = "34.05.2009"&"|"&"19.14.1887"&"|"&"16.04.1990"&"|"&"01.01.1900"&"|"&"7.5.08"&"|"&"1.10.1900"&"|"&"31.5.08"&"|"&"40.13.09"
    $split = StringSplit($String, "|")
    global $sreturn
    ;_ArrayDisplay($split)
    for $i = 1 to $split[0]
    $Matches = StringRegExp($split[$i],"((([0-2][1-9])|(3[0-1]))|(\b[1-9]))\.(((0[1-9])|(1[0-2]))|([1-9]))\.((\d{4}\b)|(\d{2}\b))",2)
    if IsArray($Matches) then $sreturn &= $Matches[0] &"|"
    next
    $sreturn = StringTrimRight($sreturn, 1)
    $areturn = stringsplit($sreturn, "|")
    MsgBox(1, "",$sreturn)
    _ArrayDisplay($areturn)

    [/autoit]

    edit \ Rückgabe noch etwas angepasst.

  • Allgemeine Frage zu RegExp

    • nuts
    • 22. November 2009 um 22:39

    Du möchtest quasi _Dateisvalid in sämtlichen Formatsvarianten als Regexp? Nur damit man auch weiss was dein Ergebnis sein soll.

    Dein Input ist jetzt der ganze "String" geprüft soll aber jede Zeile einzeln werden:

    [autoit]


    #include <Array.au3>
    $String = "34.05.2009"&"|"&"19.14.1887"&"|"&"16.04.1990"&"|"&"01.01.1900"&"|"&"7.5.08"&"|"&"1.10.1900"&"|"&"31.5.08"&"|"&"40.13.09"
    $split = StringSplit($String, "|")
    _ArrayDisplay($split)
    for $i = 1 to $split[0]
    $Matches = StringRegExp($split[$i],"((([0-2][1-9])|(3[0-1]))|(\b[1-9]))\.(((0[1-9])|(1[0-2]))|([1-9]))\.((\d{4}\b)|(\d{2}\b))",1)
    _ArrayDisplay($Matches)
    next
    exit

    [/autoit]


    So siehts schon besser aus :)
    Am Pattern muss noch was gedreht werden.

  • Mini FTP Client - vorstellung

    • nuts
    • 20. November 2009 um 18:06

    Für ein Listview mit Windows-Standard Icons müsste ich noch ein Bsp. haben.
    Bei Bedarf einfach melden.

    Ansonsten sehr schön. :thumbup:

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™