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

Beiträge von Mars

  • FASM UDF (X86 u X64)

    • Mars
    • 6. Dezember 2013 um 13:45

    Das klingt jetzt eventuell abwägig (weil ich es schonmal in AutoIt probiert habe, wo es nicht anständig funktioniert hat), aber villeicht kann man tatsächlich effektives Multithreading (nur für ASM natürlich) einbauen. In FB hat das ganz gut funktioniert. Meine Idee ist eine kleine Dll (sollte unter 10kb liegen, und direkt einbaubaubar sein) in FB die 2-n Threads erstellt und einen vorgegeben ASM code per ptr + Structptr (für die Daten) aufruft.

    So nach dem Motto: _ASM_Call(vOP, iThreads, vStruct_Thread1, ... , vStruct-ThreadN)
    In Basic ist es nun einfach z.B. 2 Threads zu erstellen die mit Struct1 und Struct2 gefüttert werden. Anschließend wird wie üblich auf die Terminierung gewartet. (Das warten hat in AutoIt so viel Leistung gefressen, dass es kaum etwas gebracht hat)

    Der Hit wäre natürlich ein optionaler instant return, sodass das Skript praktisch ohne Zeitverlust weiterläuft. (bringt nur etwas bei Abläufen die sich nicht gegenseitig beißen). Wie man soetwas einbaut weiß ich allerdings nicht :D

    Ist nur so eine Idee. Also wenns nicht gefällt einfach ignorieren :)

    lg
    M

  • FASM UDF (X86 u X64)

    • Mars
    • 5. Dezember 2013 um 16:44

    Funktioniert wunderbar :)
    AutoIt wird immer besser, je mehr gute UDFs es für verschiedene Zwecke gibt :thumbup:

    lg
    M

  • X-Mas-Challenge, ja oder nein?

    • Mars
    • 4. Dezember 2013 um 20:31

    Jaaaa, Feuerwerk ! :D

  • Happy Birthday Pee und funkey

    • Mars
    • 4. Dezember 2013 um 14:31

    :party: Los gehts :D

  • PayPal Virus im Umlauf

    • Mars
    • 4. Dezember 2013 um 01:45
    Zitat von Xorianator


    Das Problem ist nun, dass ich es zwar in der Sandbox ausgeführt habe, aber nicht sicher bin ob in den 5 Minuten die der Rechner meiner Mutter danach noch lief irgendwelche wichtigen Daten durchgesickert sind.

    Deswegen besitzt man immer einen 2t Rechner ohne Internet der per USB Sticks seine Software bekommt (falls man mal was aus dem Inet braucht). Da kann man dann (selbstverständlich auch in einer abgesicherten Umgebung) Viren usw testen.

    Weiterhin gibt es Software die es ermöglicht ein Programm zu überwachen und so Internetverbindungen (Auch Versuche zum Verbindungsaufbau usw.) herauszufinden (incl IP des empfängers und Paketdaten). Ich weiß nur grade nicht wie das Programm heißt und ob es Freeware ist, sollte sich aber googeln lassen (oder jemand hier kennt sich damit aus).

  • Weihnachtsmützen für euer Avatar !

    • Mars
    • 4. Dezember 2013 um 01:38

    Auf den Quadratschädel passt irgendwie nichts richtig, habs mal versucht :)

    lg
    M

  • X-Mas

    • Mars
    • 3. Dezember 2013 um 08:53

    Also der erste Advent lief bei uns wie das Abendessen im Film Signs. "Habt Spaß !, es Schmeckt, der Staat kann uns nicht verbieten, dass es lecker ist !" :D

  • Happy Burtstag Der_Doc und BugFix

    • Mars
    • 28. November 2013 um 14:11

    Viel Spaß Ihr 4 !

    Zitat

    - Ähm wir sind aber nur 3...
    Oooh, dann hab ich da Dreck an meiner Brille

    :D

  • UEZ hat seinen 5. Foren Geburtstag.

    • Mars
    • 27. November 2013 um 12:57

    3x gelesen und nicht geschrieben :wacko:
    Einen nachträglichen Glückwunsch an dieser Stelle :P
    Du warst, bist und bleibst einer der wichtigsten GDI+ Verfechter !

    lg
    Mars

  • Kleinster HD-Kurzfilm

    • Mars
    • 24. November 2013 um 18:06

    Die GDI+ Methode zählt doch auch zur prozeduralen Grafikgeneration, oder impliziert dieser Begriff das Erzeugen via Formeln, sodass man bei x,y Eingabe dir resultierende Farbe erhält ?

    lg
    M

  • Eure Top 10 Mix-Drinks

    • Mars
    • 21. November 2013 um 13:01

    Den Kram den ich Trinke hat meistens keinen richtigen Namen. (Bin ja auch nur ein "Etcs")
    Bin nicht so der Trendgetränkekonsument, eher das was Spaß macht und man möglicht wenige Zutaten braucht ;)

    Spoiler anzeigen
    • Jacky-Cola Pur ( 70% Cola, 30% Jack Daniels)
    • Ouzo-Cola (70% Cola, 30% Ouzo)
    • Cola für die Fab (ca.80% Schnaps ca.20% Cola)
    • Cola nur für die Fab (ca.90% Schnaps ca.10% Cola)
    • Caipirinha (Zusammensetzung sollte jeder kennen^^)
    • 103-Cola (wie üblich 103 + Cola)
    • Fusel (50% Billiger trockener Wein, 50% Eistee (Pfirsich oder Zitrone) -> Schmeckt richtig gut :D)

    Edit: Vadders Selbstgebrannter (60-80 Volt, ekelhaft, kratzig, geeignet zum Feuerspucken und für Mutproben)
    lg
    M

  • Hash Wert von Bild erstellen

    • Mars
    • 17. November 2013 um 22:05

    In $pixeldata stecken hinteineinandergereiht alle Pixeldaten drin. (das 0x abschneiden).
    Den String kannst du selbstverständlich auch hashen ohne ihn vorher auf die Platte zu schreiben.

    lg
    M

  • Datum minus eine Tag

    • Mars
    • 5. November 2013 um 18:22

    Fast die gleiche Frage wurde hier auch gestellt: Klick Mich
    Die gleiche Methode funktioniert natürlich auch mit -1 statt 1. Vorteil ist, dass man sich um Formatierungen, Unterläufe (z.B. am Monatsanfang), usw. keine Gedanken machen muss, das übernimmt die UDF schon automatisch
    lg
    M

  • Skalieren von 2D Pixeln

    • Mars
    • 5. November 2013 um 16:02
    Zitat von Grimbizo

    Aber ich speicher die einzelnen Farben in einem 2D Array, damit ich da schnellen Zugang

    Der war gut :D
    In einer Bitmap liegen die Pixel doch schon wie in einem Array, und der Zugang ist mindestens 2000x schneller (per ASM/Basic + inlineASM). Klar befinden wir uns hier in AutoIt, aber manchmal ist diese Sprache einfach ungeeignet.

    Ein gutes Beispiel ist das neulich gepostete Screenshotprogramm. In AutoIt lief das über eine Minute, in ASM grade mal 3s.

    Edit: Um an das Array zu kommen muss man einfach das Bitmap über einen Scan0 erstellen. Dann fällt die Struct automatisch ab.

    lg
    M

  • TCP: Wäre es überhaupt machbar gewesen?

    • Mars
    • 4. November 2013 um 19:06

    Eventuell (ich weiß es aber nicht) ist Ping an diesem Problem Schuld.
    Weil "schnell 50x anpingen" leider ziemlich langsam ist. Oft hält sich die Ping Funktion nicht an das Timeout. (Daher könnte eine Verzögerungsquelle kommen).
    Als Abhilfe dafür kannst du dir einige Skripte ansehen in denen z.B. in einem Lokalen Netzwerk alle Adressen durchgepingt werden, dort wird ein Hilfsskript (welches nur einen Ping und die Erfolgsrückgabe beinhaltet) verwendet. Dieses wird z.B. 50x direkt hintereinander gestartet, damit verkürzt sich die Pingzeit, da die 50 Skripte parallel laufen können. Das Hauptskript erhält dann nur noch die Meldungen.
    Wie das genau funktioniert musst du selbst nachschauen, soetwas habe ich bisher noch nicht programmiert und kenne keine genauen Einzelheiten.

    lg
    M

  • Skalieren von 2D Pixeln

    • Mars
    • 4. November 2013 um 18:43

    Das ist etwas kniffelig.
    In GDI+ gibt es dafür das PixelOffset. Ein Pixel liegt also nicht bei integer Koordinaten, sondern irgendwo dazwischen. Für eine doppelte Vergrößerung kann man also folgendes tun.
    Ich versuche das mal Grafisch darzustellen, damit man es sich vorstellen kann. Im Prinzipp wird dann am Rand eine Lineare Interpolation vorgenommen und in der Mitte entscheidet das Verfahren wie man weitermacht.
    [Blockierte Grafik: http://i.imgur.com/FyDG3nT.png]
    Edit: Wenn man Bei GDI+ das Offset falsch wählt werden die Äußeren Pixel einfach mit einem vollständig Transparenten Pixel interpoliert. Dieser "Fehler" ist also auch in GDI+ bekannt und ungelöst.
    lg
    M

  • Komischer Exit Code?

    • Mars
    • 2. November 2013 um 16:34

    Mir sind ein Paar Sachen aufgefallen (Allerdings hat das nichts mit dem Fehlercode zu tun).
    Man kann Fehler verhindern indem man Fehlerverhindernd Programmiert.

    Dazu folgendes:
    1. Warum sind in einem Binärdatensatz alle 82 Zeichen Fragezeichen untergebracht ? Der Datensatz kann so nicht sinnvoll eingesetzt werden (Außer es ist eine Strukturmaßnahme, in dem Fall ist der gleichmäßige Abstand aber zu unwahrscheinlich um Zufällig zu sein, vllt eine Interleavingmethode ?)
    2. Warum steckt im Binärdatensatz ein weiterer Binärdatensatz ? Das raubt doch jegliche Übersicht und macht die Datei größer als benötigt :pinch:
    3. Warum wird sShellRead verwendet, wenn BinaryToString exakt die gleiche Funktion hat ? BuildIns sind immer Fehlertoleranter und schneller als Eigenkonstrukte.
    4. Warum braucht dein OPCode die Kernel32nt.dll ? (Was ist das überhaupt für ein Code der hier aufgetischt wird ?)

    Spoiler anzeigen
    [autoit]

    $Buffer = "0x" & "30783630453834453030303030303642303036353030373230303645303036353030364330303333?30303332303030303030364530303734303036343030364" & _
    "33030364330303030303030303030303030303030303030303030303030303030303030303030303?030303030303030303030303030303030303030303030303030303030303030303030" & _
    "30303030303030303030303030303030303030303030303030303030303030303542384246433641?343245384242303330303030384235343234323838393131384235343234324336413" & _
    "34545384141303330303030383931313641344145384131303330303030383933393641314536413?343453839443033303030303641323236384634303030303030453839313033303030" & _
    "30364132363641323445383838303330303030364132413641343045383746303330303030364132?453641304345383736303330303030364133323638433830303030303045383641303" & _
    "33030303036413241453835433033303030303842303943373031343430303030303036413132453?834443033303030303638354245383134434635314538373930333030303036413345" & _
    "45383342303330303030384244313641314545383332303330303030364134304646333246463331?464644303641313245383233303330303030363835424538313443463531453834463" & _
    "03330303030364131454538313130333030303038423039384235313343364133454538303530333?030303038423339303346413641323245384641303230303030384230393638463830" & _
    "30303030303537353146464430364130304538453830323030303036383838464542333136353145?383134303330303030364132454538443630323030303038423339364132414538434" & _
    "43032303030303842313136413432453843343032303030303537353236413030364130303641303?436413030364130303641303036413030464633314646443036413132453841393032" & _
    "30303030363844303337313046323531453844353032303030303641323245383937303230303030?384231313641324545383845303230303030384230394646373233344646333146464" & _
    "43036413030453837453032303030303638394339353141364535314538414130323030303036413?232453836433032303030303842313138423339364132454538363130323030303038" & _
    "42303936413430363830303330303030304646373235304646373733344646333146464430364133?364538343730323030303038424431364132324538334530323030303038423339364" & _
    "13345453833353032303030303842333136413232453832433032303030303842303136413245453?832333032303030303842303935324646373735343536464637303334464633313641" & _
    "30304538313030323030303036384131364133444438353145383343303230303030383343343043?464644303641313245384639303130303030363835424538313443463531453832353" & _
    "03230303030364132324538453730313030303038423131383343323036364133414538444230313?030303036413032353235314646443036413336453843453031303030304337303130" & _
    "30303030303030423832383030303030303641333645384243303130303030463732313641314545?384233303130303030384231313842353233433831433246383030303030303033443" & _
    "03641334545383946303130303030303331313641323645383936303130303030364132383532464?633313641313245383841303130303030363835424538313443463531453842363031" & _
    "30303030383343343043464644303641323645383733303130303030384233393842303938423731?313436413345453836353031303030303033333136413236453835433031303030303" & _
    "84230393842353130433641323245383530303130303030384230393033353133343641343645383?434303130303030384243313641324545383342303130303030384230393530464637" & _
    "37313035363532464633313641303045383241303130303030363841313641334444383531453835?363031303030303833433430434646443036413336453831333031303030303842313" & _
    "13833433230313839313136413341453830353031303030303842303933424341304638353333464?646464646364133324538463430303030303038423039433730313037303030313030" & _
    "36413030453845353030303030303638443243374137363835314538313130313030303036413332?453844333030303030303842313136413245453843413030303030303842303935324" & _
    "64637313034464644303641323245384242303030303030384233393833433733343641333245384?146303030303030384233313842423641343030303030303833433630383641324545" & _
    "38394430303030303038423131364134364538393430303030303035313641303435373536464633?323641303045383836303030303030363841313641334444383531453842323030303" & _
    "03030383343343043464644303641323245383646303030303030384230393842353132383033353?133343641333245383630303030303030384230393831433142303030303030303839" & _
    "31313641303045383446303030303030363844334337413745383531453837423030303030303641?333245383344303030303030384244313641324545383334303030303030384230394" & _
    "64633324646373130344646443036413030453832343030303030303638383833463441394535314?538353030303030303036413245453831323030303030303842303946463731303446" & _
    "46443036413441453830343030303030303842323136314333384243423033344332343034433336?413030453846324646464646463638353443414146393135314538314530303030303" & _
    "03641343036383030313030303030464637343234313836413030464644304646373432343134453?843464646464646463839303138334334313043334538323230303030303036384134" & _
    "34453045454335304538344230303030303038334334303846463734323430344646443046463734?323430383530453833383030303030303833433430384333353535323531353335363" & _
    "53733334330363438423730333038423736304338423736314338423645303838423745323038423?336333834373138373546333830334636423734303738303346344237343032454245" & _
    "37384243353546354535423539354135444333353535323531353335363537384236433234314338?354544373434333842343533433842353432383738303344353842344131383842354" & _
    "13230303344444533333034393842333438423033463533334646333343304643414338344330373?430374331434630443033463845424634334237433234323037354531384235413234" & _
    "30334444363638423043344238423541314330334444384230343842303343353546354535423539?35413544433343333030303030303030"

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

    $Buffer = StringReplace($Buffer, '?', '')

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

    FileWrite('Test.txt', BinaryToString(BinaryToString($Buffer)))
    ConsoleWrite(StringReplace(FileRead('Test.txt', 34), Chr(0), '') & @CRLF)

    [/autoit]


    lg
    M

  • SSD - Hilfe bei Kaufentscheidung

    • Mars
    • 2. November 2013 um 16:01

    Das ist jetzt eventuell etwas Off-Topic, aber: Warum hat dein Rechner 63 Sekunden zum Hochfahren benötigt ?
    Ich hab aktuell 2 Rechner, der ältere (ist von 2007 glaube ich) bootet mit Win8.1 in ca. 25s. Mit normaler HDD und DDR2 Ram und nem ollen Mainboard.
    Im Bios ist allerdings der Rundumcheck deaktiviert, es wird also nur nach USB Geräten gesucht und das wars.

    lg
    M

  • Multithreading in autoit

    • Mars
    • 1. November 2013 um 18:32

    Multithreading ist möglich (auch ohne Abstürze), aber nur mit hohem Programmieraufwand durchführbar.
    Hab selbst mal eine GrafikEngine gebastelt die parallel zum eigentlichen Skript arbeitet, der dabei entstandene Overhead war aber relativ hoch, da AutoIt nicht dafür ausgelegt ist so zu arbeiten.

    Die Elegantere Methode ist der OnEventMode oder allgemeinere Callbacks. Damit lassen sich fast alle Skripte zufriedenstellend parallelisieren. Weiterhin ist geschicktes anwenden von Timern eine schöne Möglichkeit Funktionen parallel arbeiten zu lassen. (Dazu muss eine Funktion nur in einer (oder mehreren) Statischen Variable(n) ihren aktuellen Zustand speichern um später an der alten Stelle weitermachen zu können)

    Wer "echtes" Multithreading haben will um etwas parallel ausführen zu können, sollte sich lieber um eine anderweitige Struktur bemühen, zum schnelleren Rechnen sollte man auf BasicDlls (die wiederum echtes Multithreading beherrschen) zurückgreifen.

    Callbacks aus InlineASM/Dlls (zu AutoIt) führt zu Abstürzen, sobald der Interpreter meint in der AutoIt Funktion (die per Callback aufgerufen wurde) auf ein Event reagieren zu müssen. Daher sollte man Callbacks nur AutoIt intern benutzen, oder zur Zeit der aufrufenden Dll/ASM Funktion sämtliche Events temporär deaktivieren.

    Wurde alles schon etliche Male besprochen. Besser als Multithreading ist für fast alle Anwendungen eine anständige Programmstruktur !

    lg
    Mars

  • Alles Gute Make-Grafik (und allen anderen)

    • Mars
    • 1. November 2013 um 14:09

    Viel Spaß beim legalen Bierkonsum :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™