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

  • Finanzmathematik - Berechnung des Zinssatzes beim Leasingvertrag

    • nuts
    • 28. September 2010 um 17:18

    Aha nett.
    Der Rechner löst die Aufgabe aber nicht wirklich :)

  • Finanzmathematik - Berechnung des Zinssatzes beim Leasingvertrag

    • nuts
    • 28. September 2010 um 11:43

    Hey,

    folgende Aufgabe zu einem Leasingvertrag:

    Anschaffungswert: 47.900 €
    Sonderanzahlung: 24.908€
    Leasinglaufzeit: 54 Monate
    Restwert: 13.000€
    Monatliche Leasingrate: 293€

    Gesucht ist der Zinssatz und zwar gibt es eine näherungsweise Methode über das durchschnittlich gebundene Kapital.
    Das braucht man um schnell mit dem Taschenrechner eine Antwort geben zu können.
    Ein Autoitskript mit der genauen Berechnung wäre aber auch interessant ;)

    Meine Lösung:

    Bezahlten Leasingraten über 54 Monate = L = 293€ * 54 = 15882€
    Tilgunsanteil der Leasingraten= T = Anschaffunswert - Sondervorauszahlung - Restwert = 47900€ - 24908€ - 13000€ = 9992€
    Zinsanteil der Leasingraten= Z = L - T = 15882€ - 9992€ = 5830€
    Durchschnittlich gebundenes Kapital= D = T/ 2 + Restwert = 9992€/2 + 13000€ = 17996€
    Zinsatz p.a = X
    ==> D * X * 4,5 = 5830€
    ==> 17996€ * X * 4,5 = 5830€
    X = 0,08 = 8%


    Stimmt das so oder ist da ein Denkfehler drin?


    Gruß nuts

  • StringInString Problem

    • nuts
    • 27. September 2010 um 15:17

    Oder so:

    [autoit]


    $bak='http://www.autoit.com/index.php?form=ThreadAdd&boardID=2'

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

    $result =StringRegExpReplace($bak,"(.de|.com)(.*)",'$1')
    MsgBox(4096, "Fertig:", $result)

    [/autoit]
  • ListView - Array

    • nuts
    • 22. September 2010 um 17:56

    Etwas ausgebaut (inkl. Header und Colwidth):

    Spoiler anzeigen
    [autoit]


    Func _Listviewtoarray($hWnd, $dim = Default)
    ; Nuts (http://www.autoit.de)
    ; hwnd: Handle to the Listview
    ; Dim: default = all Columns
    ; else = only user defined Column
    ;Error: 0 = Incorrect handle
    ; 1 = $dim > Columcount
    If Not IsHWnd($hWnd) Then SetError(0,0,0)
    Local $col, $getcol, $getwidth, $lcount, $atext, $counter = 2
    $col = _GUICtrlListView_GetColumnCount($hWnd)
    $lcount = _GUICtrlListView_GetItemCount($hWnd)
    Switch $dim
    Case Default
    Local $alistview[$lcount + 2][$col]
    For $y = 0 To $col - 1
    $getcol = _GUICtrlListView_GetColumn($hWnd, $y)
    $getwidth = _GUICtrlListView_GetColumnWidth($hWnd, $y)
    $alistview[0][$y] = $getwidth
    $alistview[1][$y] = $getcol[5]
    Next
    For $i = 0 To $lcount - 1
    $atext = _GUICtrlListView_GetItemTextArray($hWnd, $i)
    For $x = 0 To $atext[0] - 1
    $alistview[$counter][$x] = $atext[$x + 1]
    Next
    $counter += 1
    Next
    Return $alistview
    Case Else
    If $dim > $col Then SetError(1,0,0)
    Local $alistview[$lcount + 2]
    $getcol = _GUICtrlListView_GetColumn($hWnd, $dim)
    $alistview[0] = _GUICtrlListView_GetColumnWidth($hWnd, $dim)
    $alistview[1] = $getcol[5]
    For $i = 0 To $lcount - 1
    $alistview[$i + 2] = _GUICtrlListView_GetItemText($hWnd, $i, $dim)
    Next
    Return $alistview
    EndSwitch
    EndFunc ;==>_Listviewtoarray

    [/autoit]
  • AutoIt in C++

    • nuts
    • 20. September 2010 um 14:50

    Und das ist ein Argument weil (wofür) ... ?

    Ein Zwischending zwischen C/C++ und vereinfachtem Programmieraufwand wie in autoit wäre C#.
    Ich kann einem 2MB Tool, dass 70MB Laufzeitumgebungen braucht aber nichts abgewinnen.

  • Steckerleiste via PC steuern.

    • nuts
    • 15. September 2010 um 10:05

    Das sind nur die cmdline Parameter für Eventghost selbst.

    Die Steuerung des Senders ist dieses Plugin (Python):

    Spoiler anzeigen
    Python
    eg.RegisterPlugin(
        name = "ELV FS20 PCE",
        author = "Bartman",
        version = "0.1." + "$LastChangedRevision: 614 $".split()[1],
        kind = "remote",
        canMultiLoad = False,
        description = (
            'Allows to receive events from FS20 remote controls.<br/>'
            '<a href="http://www.elv.de/"><img src=\"picture.jpg\"/></a>'
        ),
        url = "http://www.eventghost.org/forum/viewtopic.php?t=571",
    )
    
    
    import binascii
    from eg.WinApi.HID import HIDThread
    from eg.WinApi.HID import GetDevicePath
    
    
    class Text:
        errorFind = "Error finding ELV FS20 PCE"
    
    
    Commands = {
        0x00 : "Power.Off",
        0x01 : "Power.Dim.1",
        0x02 : "Power.Dim.2", 
        0x03 : "Power.Dim.3",
        0x04 : "Power.Dim.4",
        0x05 : "Power.Dim.5",
        0x06 : "Power.Dim.6",
        0x07 : "Power.Dim.7",
        0x08 : "Power.Dim.8",
        0x09 : "Power.Dim.9",
        0x10 : "Power.Dim.10",
        0x11 : "Power.Dim.11",
        0x12 : "Power.Dim.12",
        0x13 : "Power.Dim.13",
        0x14 : "Power.Dim.14",
        0x15 : "Power.Dim.15",
        0x16 : "Power.On",
        0x17 : "Power.Previous",
        0x18 : "Power.Toggle",
        0x19 : "Power.Dim.LevelUp",
        0x20 : "Power.Dim.LevelDown",
        0x21 : "Power.Dim.UpAndDown",
        0x22 : "Program.Time",
        0x23 : "SendStatus",
        0x24 : "Power.OffPreviousValue",
        0x25 : "Power.OnOff",
        0x26 : "Power.PreviousValueOff",
        0x27 : "Program.Reset",
        0x28 : "Program.DimUpTime",
        0x29 : "Program.DimDownTime",
        0x30 : "Power.OnPreviousState",
        0x31 : "Power.PreviousValuePreviousState",
    }
    
    
    class FS20PCE(eg.PluginClass):
        def __init__(self):
            self.version = None
            self.thread = None
            self.PendingEvents = {}
    
        def RawCallback(self, data):
            if not data or len(data) != 13 or ord(data[0]) != 2 or ord(data[1]) != 11:
                self.PrintError("invalid data")
                return
    
            self.version = ord(data[12])
    
            houseCode = binascii.hexlify(data[2:6])
            deviceAddress = binascii.hexlify(data[6:8])
            combinedAddress = houseCode + "." + deviceAddress
    
            command = ord(data[8])
            if command in Commands:
                commandStr = Commands[command]
            else:
                commandStr = binascii.hexlify(data[8]).upper()
    
            if combinedAddress in self.PendingEvents:
                #cancel pending events for this device
                try:
                    timerEntry = self.PendingEvents[combinedAddress]
                    startTime, func, args, kwargs = timerEntry
                    eg.scheduler.CancelTask(timerEntry)
                    self.TriggerEvent(combinedAddress + "." + args[1] + ".Timer.Cancel")
                    del self.PendingEvents[combinedAddress]
                except KeyError:
                    #may happen due to multithreaded access to self.PendingEvents dict
                    pass
                except ValueError:
                    #may happen due to multithreaded access to eg.scheduler's internal list
                    pass
    
            validTime = ord(data[9]) > 15
            if validTime:
                timeStr = binascii.hexlify(data[9:12])
                timeStr = timeStr[1:]#cut the one
                eventTime = float(timeStr) * 0.25
                if (commandStr.startswith("Power.")):
                    #parsing time
                    if (eventTime > 0):
                        timerEntry = eg.scheduler.AddTask(eventTime, self.SchedulerCallback, combinedAddress, commandStr)
                        self.PendingEvents[combinedAddress] = timerEntry
                        self.TriggerEvent(combinedAddress + "." + commandStr + ".Timer.Start", payload = eventTime)
                    else:
                        self.TriggerEvent(combinedAddress + "." + commandStr)
                else:
                    #put the time in the payload 
                    self.TriggerEvent(combinedAddress + "." + commandStr, payload = eventTime)
            else:
                self.TriggerEvent(combinedAddress + "." + commandStr)
    
        def SchedulerCallback(self, combinedAddress, commandStr):
            if combinedAddress in self.PendingEvents:
                #cancel pending events for this device
                try:
                    timerEntry = self.PendingEvents[combinedAddress]
                    startTime, func, args, kwargs = timerEntry
                    if (args[1] == commandStr):
                        #maybe an old entry if commandStr does not match 
                        self.TriggerEvent(combinedAddress + "." + commandStr + ".Timer.Finish")
                        del self.PendingEvents[combinedAddress]
                except KeyError:
                    #may happen due to multithreaded access to self.PendingEvents dict
                    pass
    
        def PrintVersion(self):
            #create the following python command to show version number
            #eg.plugins.FS20PCE.plugin.PrintVersion()
            if self.version == None:
                print "Need to receive data first. Please press a button and try again."
            else:
                versionMajor = self.version / 16
                versionMinor = self.version % 16
                print "Firmware version %d.%d" % (versionMajor, versionMinor) 
    
        def StopCallback(self):
            self.TriggerEvent("Stopped")
            self.thread = None
    
    
        def GetMyDevicePath(self):
            path = GetDevicePath(
                None,
                6383,
                57364,
                None,
                0,
                True,
                0)
            return path;
    
        def SetupHidThread(self, newDevicePath):
            #create thread
            self.thread = HIDThread(self.name, newDevicePath)
            self.thread.start()
            self.thread.SetStopCallback(self.StopCallback)
            self.thread.SetRawCallback(self.RawCallback)
    
        def ReconnectDevice(self, event):
            """method to reconnect a disconnect device"""
            if self.thread == None:
                #updating device list
    
                #check if the right device was connected
                #getting devicePath
                newDevicePath = self.GetMyDevicePath()
                if not newDevicePath:
                    #wrong device
                    return
    
                self.SetupHidThread(newDevicePath)
    
    
        def __start__(self):
            #Bind plug in to RegisterDeviceNotification message 
            eg.Bind("System.DeviceAttached", self.ReconnectDevice)
    
            newDevicePath = self.GetMyDevicePath()
            if not newDevicePath:
                #device not found
                self.PrintError(Text.errorFind)
            else:
                self.SetupHidThread(newDevicePath)
    
    
        def __stop__(self):
            if self.thread:
                self.thread.AbortThread()
    
            #unbind from RegisterDeviceNotification message
            eg.Unbind("System.DeviceAttached", self.ReconnectDevice)
    Alles anzeigen


    Ganz so einfach ists also nicht. ;)

  • Abwesenheit

    • nuts
    • 15. September 2010 um 00:40

    Dieses zeitaufwendige Problem schreit doch gerade nach Automatisierung ;)

  • Steckerleiste via PC steuern.

    • nuts
    • 14. September 2010 um 16:16

    Ich werd nu doch lieber etwas fertiges nehmen:
    http://www.elv.de/FS20-PC-Sender…0/detail2_27743

    Läuft schon mti Eventghost, vielleicht mach ich auch noch eine UDF für Autoit dazu.

  • StringRegExp(erten) für Patternerweiterung benötigt

    • nuts
    • 10. September 2010 um 13:43

    Soll das eine Regexp Übung werden?

    Weil das lässt sich doch einfach und schnell(er) mit Stringbetween und stringsplit lösen.

    So aus dem Kopf heraus.

    [autoit]


    $sbetween=_Stringbetween($stext, "(", ")")
    $asplit=Stringsplit($sbetween, ",")
    $ret=Stringreplace($asplit[2], "word", "")

    [/autoit]
  • Steckerleiste via PC steuern.

    • nuts
    • 9. September 2010 um 19:19

    Könnte bitte jemand für einen Endverbraucher den Stromkreis skizzieren (bzw. beschreiben)?
    Was ein Relais ist weiss ich schon, nur ich kriegs nicht zuende gedacht.

  • Steckerleiste via PC steuern.

    • nuts
    • 9. September 2010 um 18:34

    Und wie gehe ich dann weiter vor?

    PC -> USB -> den Conrad-Bausatz -> .?.?.?.?. -> normale Steckerleiste -> Heimkinogeräte

    Subwoofer, externe Endstufe, die Beleuchtung (1 normaler Steckdosenanschluss) solle per PC gesteuert werden.
    D.h. mind. 3 verschiedene Quellen.

  • Steckerleiste via PC steuern.

    • nuts
    • 9. September 2010 um 13:42

    Hey,


    für mein Heimkino bräuchte ich Steckerleisten, die vom PC aus steuerbar sind (an/aus).
    Die Schnittstelle wäre eigentlich egal, USB ist wohl am einfachsten.
    z.B. sowas: http://www.pearl.de/a-NC5153-5452.…2NqrBCgdlnp-RRs

    Allerdings ist mir nicht klar wie man an die die Steuerung genau aussieht.
    Ich bräuchte eben was mit DLL/API um das in meine Skripte einzubauen und keine fertige Software, die per Mausklicks bedient werden muss.

    Hat damit schon jemand Erfahrungen sammeln können und kann mir ein entsprechendes Produkt empfehlen?
    So bis max. 70€


    Gruß nuts

  • peethebee ist B.Sc.

    • nuts
    • 2. September 2010 um 16:50

    Glückwunsch :thumbup:
    Was fürn Schnitt haste erreicht?

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 1. September 2010 um 13:11

    Funktioniert und zwar auch im Systemkonto!
    Danke anno2008 :thumbup:

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 1. September 2010 um 10:38

    Muss man sich nicht erst einloggen und dann den GET Request hinterherschicken?
    Irgendwie hakts da bei mir.

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 1. September 2010 um 09:47

    Inetget schafft es leider auch nicht (nur im Systemkonto) ...

    Kann mir vielleicht mal jemand ein Beispiel zu diesem Aufruf mit WinHTTP machen?

    [autoit]

    InetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1)

    [/autoit]


    /api/status.html ist ein GET Request

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 31. August 2010 um 23:15

    Werds mal versuchen.

    Gibts ne einfache Möglichkeit mein Skript im Systemkonto laufen zu lassen?
    Das debuggen über den Webserver geht mir langsam auf die Nerven :(

  • IsPrim(Zahl)

    • nuts
    • 31. August 2010 um 22:06

    PrimA - der Primzahlengenerator
    Letztes mal hat progandy gewonnen?

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 31. August 2010 um 21:37

    Nee muss nicht umbedingt sein.
    Allerdings kann ich mit dem HTTP Kram nicht so viel anfangen und hab mich meistens dann doch drum gedrückt.

    Scheint hier aber wohl unausweichlich, wobei dieses Problem mehr als seltsam ist. ?(

  • Inetread übers Systemkonto -> funktioniert nicht.

    • nuts
    • 31. August 2010 um 18:11

    Hm Inetread auf https://autoit.de/www.google.de funtkioniert innerhalb des Systemkontos, nur die Abfrage auf den Webserver nicht :(

    Ich fasse nochmal zusammen:

    InetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1) als Admin funktioniert
    Inetread(http://www.google.de,1) als Admin funktioniert
    Inetread(http://www.google.de,1) im Systemkonto funktioniert

    InetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1) im Systemkonto funktioniert nicht


    Fällt dazu jemand was ein? ?(

    Edit\ Vom Webserver her spricht lt. Entwickler nichts gegen den Aufruf innerhalb des Systemkontos. Verstehe das echt nicht :(

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™