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

Beiträge von Andy

  • Prozess schützen

    • Andy
    • 3. August 2012 um 19:51
    Zitat

    Notfalls müsste ich halt 2 Prozesse erstellen, die sich gegenseitig kontrollieren uns sobald einer weg ist, wird er vom zweiten Prozess wieder gestartet. Naja, aber das Wahre ist das nicht.

    jeder "sichtbare" Wurm oder Virus macht das so, warum sollst du das nicht auch genauso machen?

    Zitat

    Selbst als Superadmin kann ich avp.exe nichts anhaben

    schreibe einen Treiber, installiere ihn und lass diese Installation von Windows "abnicken". Einmal im System verankert hast du keine ungewollte Chance mehr auf Zugriff von den oberen Systemschichten (Layern) im laufenden Betrieb. Das ist auch der Grund, wieso bei manchen Deinstallationen neu gebootet werden muss. Bevor das System hochfährt werden diese Dateien entladen und aus den Systemtabellen entfernt.
    Genau aus demselben Grund lässt man einen Virenscan auch nur von einer Live-CD oder einem bootbaren Stick laufen.

  • DANKE an Alle

    • Andy
    • 31. Juli 2012 um 16:49

    Hi,
    auch ich freue mich an jedem Tag DABEI zu sein!

    Zitat

    Es gibt so manche Foren, die Menschen anscheinend nur besuchen, um sich mit anderen zu streiten und um andere niederzumachen.


    Es gibt so manche Foren, die Menschen anscheinend nur besuchen, um sich mit anderen zu streiten und um andere niederzumachen.
    hmmm, habe ich schon davon gehört, kenne ich aber persönlich nicht. Das liegt daran, dass meine Interessenlage solche "Foren" garnicht berührt. Will sagen, wenn man die Interessen von Vollspaten teilt, dann muss man sich nicht wundern, in solch einem Forum auf Vollspaten zu treffen.
    Hier ist das Niveau glücklicherweise weit über dem Durchschnitt, was die "Bunten" aber nicht daran hindert, ab und zu auch mal herzhaft das eine oder andere "Brett" (Raupi nimmt den Hammer) zu verteilen :D
    In diesem Sinne lasst uns weitermachen!

    Vor allem unter den jüngeren Forenmitgliedern haben sich in den letzten Jahren einige TOP-Leute herausgestellt! Ich bin davon überzeugt, daß deren Skill bei weitem nicht so gut wäre, wenn diese Jungs und Mädels in anderen (AutoIt-) Foren aktiv gewesen wären.... :rock:

  • Xorianator...

    • Andy
    • 31. Juli 2012 um 16:34

    Glücklichen Herzwunsch und alles Gute zum Geburtstag!
    Hau rein und lass es krachen, 16 wird man nur einmal^^

  • Autoit zu C++ konverter

    • Andy
    • 29. Juli 2012 um 12:04

    Hi,
    interessantes Thema, vor allem mit dem Hintergrund der Frage, wozu man einen AutoIt-C-Konverter braucht, der das KOMPLETTE Script kompiliert.
    Denn das komplette Script mit sämtlichen nativen Funktionen nach C konvertiert, bringt einem (siehe Marthog´s Beispiel).....nichts!
    Die Gründe um AutoIt zu benutzen sind vielfältig, die Einschränkungen eher minimal.
    Da wären einmal die Größe des "kompilierten" Scripts in KBytes, da lasse ich mich jetzt nicht drüber aus, ich zweifle einfach an, dass dieses Thema heutzutage noch jemanden ernsthaft interessiert.
    Weiterhin steht das Thema Ausführungsgeschwindigkeit im Raum, und da hat AutoIt teilweise Defizite.
    Wieso aber nur teilweise?
    Schauen wir uns mal x-beliebige der in den letzten Wochen hier im Forum geposteten Scripte an. Hauptsächlich gehts um GUI´s, Dateifunktionen, Webseiten-Gedöns usw.
    Würde bei diesen Scripten eine Konvertierung nach C etwas bringen, Geschwindigkeitstechnisch gesehen? Auf keinen Fall! Solange User-Interaktion das Script bestimmt, ist Geschwindigkeit absolut kein Thema. Usability ist dann ein Thema :D
    Die allermeisten nativen AutoIt-Funktionen sind, wie schon festgestellt, gewrapperte WIN-API-Calls. Ob jetzt C oder AutoIt das API callt, bleibt von der Ausführungsgeschwindigkeit gleich.
    Aber WAS ist denn nun bei AutoIt so "langsam"?
    Langsam sind immerwiederkehrende Berechnungen in langen Schleifen, in denen das Script viel Zeit verbringt, die sogenannten "inner Loops". Ich behaupte jetzt einfach, dass in den allerwenigsten dieser inner Loops die dort gecallten nativen (also API- ) Funktionen ein Problem sind, sondern eher die (mathematischen) Berechnungen oder Speicherzugriffe (wie z.B. bei Arrays).

    Ob das Thema nun Bildbearbeitung, Kollisionsberechnung bei Spielen, Sortieraufgaben oder die Umsetzung beliebiger Algorithmen ist, in den allermeisten Fällen würde die "Übersetzung" nach C einen gewaltigen Geschwindigkeitsschub bringen, ohne dass 99,9% der API-Funktionen involviert sind!

    Was also einen "Konverter" wirklich interessant machen würde, ist ein Übersetzer bzw. Compiler für Funktionen ohne bzw sehr wenige API-Calls.
    Der Konverter würde den Inhalt der Funktion (bzw. des "inner Loops" ) nach C umwandeln, kompilieren (ggf. in eine DLL) und den Funktionsinhalt im AutoItscript durch einen DLL-Call ersetzen.
    Man hätte ein schnell und einfach zu erstellendes AutoIt-Script, und die Möglichkeit, eklatant Geschwindigkeit zu optimieren, ohne dass der Code dadurch "unleserlich" wird.

    Denn eins ist Fakt, ein langsames Programm wird nicht dadurch schneller, dass man es 1:1 nach C konvertiert!
    Das AutoIt-Script

    [autoit]

    Func _randomcolor($hbitmap, $Color);setzt Bitmap in Farbe
    For $b = 1 To 1000
    For $h = 1 To 1000
    _gdiplus_setpixel($hbitmap, $h, $b, $Color);API-Call
    Next
    Next
    EndFunc ;==>_randomcolor

    [/autoit]

    ist nach 1:1 Übersetzung nach C genauso langsam wie vorher mit AutoIt....
    wobei ein

    [autoit]

    $Struct_Bitmap=DllStructCreate("uint [" & 1000 * 1000 & "]", $pointer_hbitmap);nichts weiter als ein Array

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

    Func _randomcolor($Struct_Bitmap, $Color);setzt Bitmap in Farbe
    For $b = 1 To 1000
    For $h = 1 To 1000
    dllstructsetdata($Struct_Bitmap, 1,$Color,$h*$b);Bytes im Speicher setzen
    Next
    Next
    EndFunc ;==>_randomcolor

    [/autoit]

    in C "übersetzt" geschätzt 100x schneller ist! Wobei es imho egal ist, ob man mit einer Struct oder einem Array arbeitet.

    Dass heisst im Endeffekt, die Geschwindigkeitsvorteile von C müssen VOR der Konvertierung AutoIt->C im Script berücksichtigt und angepasst werden! Profiling lässt Grüssen!
    Aber dieser Schritt ist im Gegensatz zu einem "Komplett-Konverter" nur ein Mückenschiss^^

    Zusammenfassung:
    Ein AutoIt->C - Konverter macht nur Sinn, wenn der Scripter das Script darauf ausrichtet! Dann kann er aber einfacher (und mit wesentlich verständlicherem Code) das Programm direkt in C schreiben.
    Sämtliche API-Calls umzusetzen ist eine Menge Arbeit, die Geschwindigkeitstechnisch nichts bringt.
    "Inner Loops" in z.B. eine DLL auslagern verändert den AutoIt-Code kaum und sorgt trotzdem für ein schnelles Script.

  • Redewendung

    • Andy
    • 27. Juli 2012 um 23:47
    Zitat

    harkhark..da musste ich sogar mit meinen fast 42 lenzen lachen..

    Jungspund! :thumbup:

  • [FRAGE] Thread für - Script für Scriptübergreifende Variablen - wo erstellen?

    • Andy
    • 25. Juli 2012 um 04:54

    Hi,
    schon seit seligen DOS-Zeiten setzt man "globale Variablennamen" über den SET-Befehl.
    In AutoIt greift man z.B. über die Macros oder _WinAPI_ExpandEnvironmentStrings($sString) zu.

    Zitat

    Auf die Idee kam ich weil Ich Variablen zwischen Scripts austauschen wollte

    Variablen austauschen ist unnötig, den INHALT von Variablen austauschen macht schon mehr Sinn^^. Schau dir dazu mal das Message-Handling an...bzw. Interprozess-Kommunikation, IPC z.B. über named Pipes, auch in AutoIt verfügbar.

  • variable if abfrage

    • Andy
    • 16. Juli 2012 um 18:57

    Eigentlich sind diese "logischen" Ausdrücke so zu verwenden, dass garkeine "IF/THEN"-Kaskaden entstehen....

    Spoiler anzeigen
    [autoit]

    If $b=5 and $c="4" Then
    $t = 4
    Else
    $t = 3
    EndIf

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

    ;entspricht

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

    $t= 3 + 1 * ($b=5 and $c="4")

    [/autoit]
  • UDP Datenstau vermeiden

    • Andy
    • 16. Juli 2012 um 17:35

    Hi,
    die Funktion "Linien" kannst du komplett weglassen, wenn du einmal den Backbuffer (per "Linien"-Funktion auf den Background) komplett erstellst, und diesen einfach nur als Hintergrund nimmst.

    Weiterhin berechnest du den kompletten Linienzug in jedem Schleifendurchgang neu aus den "alten" Daten, auch das ist völlig unnötig,

    Schreibe die Daten so lange, bis der erste "Bildschirm" (Buffer1) voll ist.
    Dann schiebst du dieses komplette Bild (Buffer1) EIN PIXEL nach links.
    Jetzt muss nur noch der aktuelle Wert (Pixel) an den rechten Rand geschrieben werden, bzw linie vom "letzten" Pixel zum aktuellen.
    Du zeichnest also pro empfangenen Wert exakt einmal eine Linie, ggf ist es schneller 3-4 empfangene Werte zusammen zu fassen und diesen Linienzug zu zeichnen...

  • variable if abfrage

    • Andy
    • 16. Juli 2012 um 17:21

    So macht man das...

    Spoiler anzeigen
    [autoit]


    $b = 5 ;6
    $c = "4"

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

    $a = ($b = 5 And $c = "4")

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

    If $a Then
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $t = 4
    $e = 5
    Else
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    $t = 3
    $e = ""
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • variable if abfrage

    • Andy
    • 16. Juli 2012 um 17:03

    Beispiel?

  • UDP Datenstau vermeiden

    • Andy
    • 16. Juli 2012 um 16:59

    Hi,
    zeig mal den relevanten Teil von deinem Script, ich würde auch sagen, dass die reine Datenanzeige wesentlich schneller als 40ms machbar ist, ggf. gibts ja "tuning"-Potential 8o

  • Brainfuck - Compiler, IDE und Interpreter

    • Andy
    • 15. Juli 2012 um 16:59

    Also den Lexer und Parser hast du ja schon in AutoIt geschrieben....
    Diesen Codeteil müsstest du nur in eine compilierende Sprache übersetzen, zur Not geht auch AutoIt^^

    Ich würde das auf Kommandozeilenebene machen:
    Textdatei mit Brainfuck-Code an den "Compiler" übergeben und von diesem eine EXE generieren lassen....wenn das in AutoIt klappt, transferiere den Compiler nach C oder C++ und du hast eine sehr kleine EXE.

  • Brainfuck - Compiler, IDE und Interpreter

    • Andy
    • 15. Juli 2012 um 16:20

    Hi,

    Zitat

    Naja, ich schau mal ob ich noch nen Compiler mache

    mein letzter Compilerbau ist zwar schon bestimmt 15 Jahre her (jede Wette, die Disketten sind nicht mehr lesbar....btw, wo ist an den neuen Rechnern überhaupt das Diskettenlaufwerk^^), aber wenn du Hilfe brauchst....melden :thumbup:

  • Brainfuck - Anfängerhilfe

    • Andy
    • 15. Juli 2012 um 15:43

    Hi,

    Zitat

    Das ist sicher weder sinvoll noch schnell, aber faszinierend.

    ...und btw. der erste Schritt zu einem COMPILER :thumbup: !
    Wenn der Interpreter gut funktioniert, dann ist der Compiler nur noch eine Fleißaufgabe....

  • Dezimal in Hex umwandeln

    • Andy
    • 14. Juli 2012 um 12:44

    Ist das ein Bug oder ein Feature?

  • Happy Birthday TheShadowAE

    • Andy
    • 14. Juli 2012 um 07:51

    Glücklichen Herzwunsch und alles Gute!
    Weiter so du machen sollst, junger Padawan.... :thumbup:

  • Brainfuck - Anfängerhilfe

    • Andy
    • 13. Juli 2012 um 19:30

    Hi,
    ich meine hier im Forum schon Brainfuck-Interpreter in AutoIt gesehen zu haben...^^

  • Suche nach Möglichkeiten mit TCP im LAN

    • Andy
    • 13. Juli 2012 um 18:42

    Hi,
    ich hatte HIER mal eine Art Anleitung gepostet, wenn du damit nicht klarkommst, einfach melden :D
    Die Server bzw Client-Scripte aus der Hilfe sind eigentlich selbsterklärend...

  • Suche Anregung für Bonus System

    • Andy
    • 12. Juli 2012 um 06:50

    Hi,
    die Quersumme ist denkbar ungeeignet, da sämtliche Zahlendreher als "richtig eingegeben" gezählt werden.
    Ich würde eine Reihe Zahlen in eine Datei generieren und diese auf ein Blatt Papier ausdrucken, in kleine Streifen geschnitten mit einem "Bonus"-Bildchen dabei, ist das ein handfester Gutschein^^
    Dann haben die Kinder die Belohnung auch "in der Hand" und könne sie einsetzen wann sie wollen....und auch gegenseitig tauschen :D

  • Autoit zeilen sortieren short cut

    • Andy
    • 8. Juli 2012 um 21:05
    Zitat

    das dieses Apostroph am anfang und am ende steht.

    markieren und Ctrl-Q

    EDIT, du meinst sicher markieren und dann TAB, verschiebt den Block komplett mach rechts

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™