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

  • GUI als Bild abspeichern

    • Andy
    • 5. Juli 2015 um 17:04
    Zitat von CentuCore

    und frag mich jz nicht warum Metafile von Image erbt, die Designer hatten schon ihre Gründe/soweit kenn ich mich nicht mit GDI+ aus)

    Wenn du dich nicht auskennst, und nicht weisst bzw. erklären kannst WARUM das so ist, wird dein Statement "die Designer hatten schon ihre Gründe" zur Ausrede für alle Leute, welchen sämtlichen Mist kommentarlos akzeptieren und auch anwenden...in Ermangelung konstruktiver Verbesserungen! Diese Leute würden heute noch mit der Keule in der Hand in Höhlen wohnen und sich den Arsch abfrieren. Feuer? Pfff...im Sommer wird es doch sowieso wieder warm...

    Die erfolgten "Verbesserungen" von GDI(+) klammern diesen undurchsichtigen Sumpf komlett aus, und nennen sich dann DirectX, D3D, OpenGL uswusf. Mal abgesehen davon, dass dort genauso "zwielichtige" Konstrukte vorkommen. Ob das daran liegt, dass 10000 "Entwickler" über 30 Jahre hinweg permanent auf der Arbeit ihrer Vorgänger aufbauen und somit auch kommentarlos deren Fehlkonstruktionen übernehmen und sich nur 3 Handvoll Leute Gedanken darüber machen, was "sinnvoll" und "Anwenderfreundlich" ist, soll jeder selbst entscheiden!
    Akzeptieren muss man das aber nicht!

    Zitat von CentuCore

    @Ontopic: Was hat diese Diskussion mit der eigtl. Problemstellung des TE zu tun?

    Was wiederum erklärt, dass du dich nicht auskennst und auch den Thread nicht verfolgt hast!
    Der TE bekommt es eben NICHT hin, einfachste Bildbearbeitung mit GDI(+) hinzubekommen, genau WEIL das System völlig undurchsichtig ist! Und er ist nicht allein, vielen anderen geht es genauso!
    Wie gesagt, das ist auch der Grund, wieso ich persönlich "direkte" Bildbearbeitung vorziehe. Mittlerweile habe ich mir Funktionen dafür geschrieben, um bspw. Schrift/Bilder in vorhandene Zeichnungen/Bilder einzufügen, oder Filter auf vorhandene Bilder anzuwenden, da ich nach 8 Wochen ohne GDI keinen Plan mehr habe welche Schritte im einzelnen dafür nötig sind.

    Zitat von CentuCore

    aber wenn du dir die GDI+'s Vererbungshierarchie anschaust, dann siehst du, dass zwei Klassen von Image erben und das sind Bitmap und Metafile.
    Und es wär unlogisch wenn man aus einem Metafile ein Graphics Objekt erstellen könnte, deshalb wurde diese Funktion in Bitmap ausglagert

    Ah 8o , genau DAS interessiert ehrlich gesagt kein Schwein! Interessant ist, wie ich ein vorhandenes BILD lade, dieses rotiere, einen Teil davon ausschneide, mit Markern versehe und wieder speichere bzw. in einer GUI anzeige! Und das mit Befehlen, welche sich auf das BILD beziehen, denn DIESES wird doch bearbeitet, oder etwa nicht?!

  • GUI als Bild abspeichern

    • Andy
    • 5. Juli 2015 um 11:30

    @Alina,
    der ThreadErsteller kommt, übrigens genau wie ich, beim Erstellen eines Scriptes nicht mit den diversen BITMAP/IMAGE/HBITMAP/GRAPHICS-Funktionen der GDI(+) klar!
    Das kommt einfach daher, dass man sich als Anfänger sowie auch als Fortgeschrittener durch den Objektdschungel der verschiedenen Funktionen schlagen muss.
    Die Frage ist, wieso man nicht EIN Objekt bearbeitet, welches sich in den Funktionsnamen wiederspiegelt?!
    Die Funktionen bleiben identisch, die Namen beziehen sich aber auf EIN Objekt, beispielsweise "CANVAS" statt BITMAP/IMAGE/HBITMAP/GRAPHICS-Funktionen.

    Siehe Post #9, dort werden NUR die GRAPHICS-Funktionen verwendet. Obwohl es einige davon diese in der "offiziellen" Bildbearbeitungs-Beschreibung garnicht gibt...
    Somit bezieht man sich auf EINEN Funktionsnamen-Stamm und muss nicht mit mehreren anderen Funktionsnamen komplizierte (weil nicht dokumentierte! ) Abhängigkeiten auflösen!

    Link dazu... https://msdn.microsoft.com/de-de/library/…7(v=vs.71).aspx
    Zusammengefasst wird ein BITMAP-Objekt in einem IMAGE-Objekt erstellt, welches dann mit einer GRAPHICS-Funktion bearbeitet werden muss! Weiterbearbeitet wird das Ganze dann mit BITMAP-Funktionen und gespeichert mit IMAGE-Funktionen!
    Wieso wird kein XXXXX-Objekt erstellt und mit einer XXXXX-Funktion bearbeitet und mit einer XXXXX-Funktion gespeichert?

  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Andy
    • 3. Juli 2015 um 23:29

    Anhänge sind wieder da! Juhuuu! :party:

    Wie sieht es mit den Links auf die Anhänge aus, besonders bei den Bildern, aber auch auf die Dateien?!
    Zzt. stehen ja in den Threads anstatt der anzuzeigenden Bilder und Downloadlinks nur Links in der Form autoit.de/index.php/Attachment/15678/ welche dann "ins Leere" führen.
    Besteht die Chance, dass diese "Links" wieder als Bilder bzw. Files dargestellt werden?

    Ansonsten würde ich mich daransetzen bei den 3 Handvoll von mir erstellten Threads *husthust*, diese wieder "schick" zu machen...wenn ich dazu Lust habe :D

  • GUI als Bild abspeichern

    • Andy
    • 3. Juli 2015 um 20:44

    eher so...

    Spoiler anzeigen
    AutoIt
    #include <GDIPlus.au3>
    
    
    
    
    _GDIPlus_Startup()
    
    
    $hGUI = GUICreate("")                                        ;GUI
    GUISetState()
    
    
    $hGraphic = _GDIPlus_GraphicsCreateFromGUI($hGUI, 300, 300)  ;Leinwand erstellen, es kann nur einen geben ;o)
    
    
    ;Hintergrund
    $hPen = _GDIPlus_PenCreate(0xFF7f7f7f, 300)                  ;Pinsel in Grau
    $height = _GDIPlus_GraphicsGetHeight($hGraphic)              ;Höhe der Leinwand
    $width = _GDIPlus_GraphicsGetWidth($hGraphic)                ;Breite der Leinwand
    $a = _GDIPlus_GraphicsDrawRect($hGraphic, 0, 0, $height, $width, $hPen) ;Hintergrund GUI grau(0xFFFF0000)      ;Pinsel, um auf der Leinwand zu malen
    
    
    ;Rechteck
    $hPen = _GDIPlus_PenCreate(0xFF00FF00, 15)                   ;Pinsel in Grün
    _GDIPlus_GraphicsDrawRect($hGraphic, 5, 5, 100, 200, $hPen)  ;Rechteck auf die Leinwand malen
    
    
    ;Linie
    $hPen = _GDIPlus_PenCreate(0xFF0000FF, 5)                    ;Pinsel in Blau
    _GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, 200, 290, $hPen);Linie
    
    
    
    
    _GDIPlus_GraphicsDrawToGUI($hGraphic, $hGUI)                 ;Leinwand auf die GUI
    
    
    
    
    While GUIGetMsg() <> -3
    WEnd
    
    
    
    
    _GDIPlus_GraphicsSaveToFile($hGraphic, "GDIPlus_GRAPHICS.jpg");Leinwand speichern
    
    
    ShellExecute("GDIPlus_GRAPHICS.jpg")
    
    
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown
    
    
    
    
    
    
    
    
    Func _GDIPlus_GraphicsCreateFromGUI($hGUI, $w = WinGetClientSize($hGUI)[0], $h = WinGetClientSize($hGUI)[1])
        Global Static $hGraphicFromGUI = _GDIPlus_GraphicsCreateFromHWND($hGUI)
        Global Static $hImageFromGUI = _GDIPlus_BitmapCreateFromGraphics($w, $h, $hGraphicFromGUI)
        $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImageFromGUI)
        Return $hGraphic
    EndFunc                                                      ;==>_GDIPlus_GraphicsCreateFromGUI
    
    
    
    
    Func _GDIPlus_GraphicsGetHeight(ByRef $Graphics)
        Return _GDIPlus_ImageGetHeight($hImageFromGUI)
    EndFunc                                                      ;==>_GDIPlus_GraphicsGetHeight
    
    
    Func _GDIPlus_GraphicsGetWidth(ByRef $Graphics)
        Return _GDIPlus_ImageGetHeight($hImageFromGUI)
    EndFunc                                                      ;==>_GDIPlus_GraphicsGetWidth
    
    
    Func _GDIPlus_GraphicsDrawToGUI($hGraphic, $hGUI)
        $ba = _GDIPlus_GraphicsDrawImage($hGraphicFromGUI, $hImageFromGUI, 0, 0)
    EndFunc                                                      ;==>_GDIPlus_GraphicsDrawToGUI
    
    
    Func _GDIPlus_GraphicsSaveToFile(ByRef $hGraphics, $file)
        _GDIPlus_ImageSaveToFile($hImageFromGUI, $file)
    EndFunc                                                      ;==>_GDIPlus_GraphicsSaveToFile
    Alles anzeigen

    Man beachte die Parameter (und deren Übergabe bzw. Verwendung) in den "neuen" Funktionen :D
    Aber ich denke es wird klar, wo ich hin will...

    Übrigens ist mir noch etwas eingefallen, es gibt noch einen Audruck für "Leinwand", und zwar "Canvas", cool, damit könnte man _Canvasxxxxx()-Funktionen erstellen um die GRAPHICS/BITMAP/HBITMAP/IMAGE -Funktionen zu wrappern 8o

  • GUI als Bild abspeichern

    • Andy
    • 3. Juli 2015 um 15:34
    Zitat von UEZ

    Der Hauptunterschied ist wohl der interne Aufbau, aber wer möchte, kann in MSDN sich informieren.

    Genau DAS ist eben das Problem....
    Dort gibt es eben die Beispiele nicht, welche einem logisch denkenden Menschen erklären, wieso es MEHRERE komplizierte Verfahren/Ausdrücke für ein und dasselbe gibt.

    Ich als "Oldschool"-Bitmapbearbeiter möchte das machen, was der TE auch machen möchte! Eine Zeichnung erstellen, indem ich verschiedene "Pinsel" verwende.
    "Von Hand" nehme ich einfach eine Leinwand und male mit verschiedenen Pinseln etwas darauf. Fertig.
    Code dazu:

    AutoIt
    $Leinwand=GetLeinwand($hwnd_GUI,Position,Größe)  ;soweit ok
    $Pinsel=DefinierePinsel($Leinwand,Eigenschaften)  ;auch ok
    
    
    MaleLinie($Leinwand,x1,y1,x2,y2,Pinsel)  ;wie sonst^^
    MaleRechteck($Leinwand,bla...)
    MaleIrgendwas($Leinwand,blub...)
    MaleFilter($Leinwand,tralala...)
    
    
    Filesave($Leinwand,Dateiname)  ; fertig
    Alles anzeigen


    Es gibt EINE Leinwand, auf die sämtliche Funktionen angewendet werden, so stelle ich mir das vor.


    Dagegen ist

    AutoIt
    $hGraphic_hwnd = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hImage = _GDIPlus_BitmapCreateFromGraphics(400, 300, $hGraphic_hwnd)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)

    mMn nur noch KRANK!
    Da beziehen sich GRAPHICS, BITMAP und IMAGE -Funktionen auf ein- und dasselbe, nämlich das "Bild"
    Um zu "malen", MUSS ich die GRAPHICS-Funktionen benutzen, um Filter und Pixel und Icons zu bearbeiten MUSS ich BITMAP-Funktionen verwenden, und um schliesslich mein Bild zu vergrössern/verkleinern oder zu speichern oder die Bildgröße herauszufinden MUSS ich die IMAGE-Funktionen verwenden.....ohne Worte...
    Und wenn man dabei an der richtigen Stelle nicht noch das eine oder andere _WinAPI_SelectObject() benutzt, funktioniert sowieso nichts mehr ||
    Tut mir ehrlich leid, aber das Konzept dahinter ist weder für Einsteiger noch für Fortgeschrittene Anwender (und ich bezeichne mich hier einfach mal als "Fortgeschrittener" in Sachen Programmierung) nachvollziehbar.

    //EDIT
    WENN sich schon 25 Jahre nach Einführung grafischer Betriebssysteme das Graphics-Konzept etabliert hat, wieso gibt es dann bspw. die Funktionen _GDIPlusGraphicsCloneArea() oder _GDIPlusGraphicsGetHeight() und _GDIPlusGraphicsSaveToFile() nicht?
    Dann könnte man sich auch die Fingerwundschreiberei sparen und gleich Clonearea(),GetHeight() und SafeToFile() schreiben :whistling:

  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Andy
    • 3. Juli 2015 um 12:23
    Zitat von Gun-Food

    Ich kenne nun aber die Ursache

    :thumbup: Ich hatte diese "Vorschau" schon beim Editieren von einigen vor langer Zeit erstellten Threads, aber nachdem ich die hochgeladenen Grafiken gelöscht hatte, war alles wieder "sauber", daher dachte ich an ein kurzzeitiges Darstellungsproblem des Browsers...

    Schön jedenfalls, dass du, Gun-Food, dich um die Anhänge kümmerst, vielen Dank dafür!!!

  • GUI als Bild abspeichern

    • Andy
    • 3. Juli 2015 um 12:14
    Zitat von UEZ

    Andy, du solltest die _GDIPlus_PenCreate Ressourcen "sauber" freigeben, wenn du sie so oft benutzt.

    UEZ, du weisst genau, dass ich das Beispiel aus der Hilfe kopiert und um 3-4 Zeilen eigenen Code ergänzt habe :D
    Ansonsten wären GARKEINE _Dispose()-Aufrufe im Script enthalten 8)
    *whispermode ON* und wenn es statt 12 auch 12000 Pens wären, Windows sorgt beim Beenden des Scripts dafür, dass der Speicher freigegeben wird...*whispermode OFF*

    Übrigens einer der Gründe, wieso ich die Variante mit _WinAPI_ - Funktionen vorziehe, da kümmerst du dich selbst um deinen Speicher bzw. dieser wird sowieso von Windows abgewickelt.. Für o.g. Beispiel brauche ich damit nicht mal die Hälfte der Befehle. Mal davon abgesehen, dass ich die _GDIPlus_- Funktionen sowieso nur zu 5% verstehe (und deswegen auch nutze).
    Bis jetzt konnte mir noch niemand erklären, worin der Unterschied der GDI+ in Bezug auf -Graphics, -Image, -Bitmap, HBitmap usw besteht, ich habe EINE einzige GUI auf der ich mit mehreren Objekten jedes mal Saltos schlagen muss, um "ein bisschen" Grafik anzuzeigen :| .

  • _IsPressed abfangen und nicht abfragen

    • Andy
    • 3. Juli 2015 um 07:35

    Hi,
    wieso passt du die _Ispressed()-Funktion nicht entsprechend an?

  • GUI als Bild abspeichern

    • Andy
    • 2. Juli 2015 um 19:49

    Hi,
    so sollte es funktionieren mit GDIPlus. Ich persönlich ziehe die "Oldschool"-Variante mit Bitmaps vor.

    Spoiler anzeigen
    AutoIt
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    
    
    Local $hGUI, $hGraphic, $hPen
    
    
    ; Create GUI
    $hGUI = GUICreate("GDI+", 400, 300)
    GUISetState(@SW_SHOW)
    
    
    ; Draw line
    _GDIPlus_Startup()
    $hGraphic_hwnd = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hImage = _GDIPlus_BitmapCreateFromGraphics(400, 300, $hGraphic_hwnd)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage)
    
    
    
    
    $hPen = _GDIPlus_PenCreate(0xFF7f7f7f, 300)
    _GDIPlus_GraphicsDrawRect($hGraphic, 0, 0, 400, 300, $hPen) ;Hintergrund grau
    
    
    
    
    $hPen = _GDIPlus_PenCreate(0xFFFFFFFF, 2)
    _GDIPlus_GraphicsDrawRect($hGraphic, 50, 50, 100, 200, $hPen) ;Rechteck weiß
    
    
    For $i = 1 To 10  ;Linien
        $hPen = _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 1), 3)
        _GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, Random(10, 390), 290, $hPen)
    Next
    ; Loop until the user exits.
    
    
    _GDIPlus_GraphicsDrawImage($hGraphic_hwnd, $hImage, 0, 0)
    
    
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    
    
    
    
    FileDelete("GDIPlus_Image.jpg")
    $a = _GDIPlus_ImageSaveToFile($hImage, "GDIPlus_Image.jpg")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    
    
    
    ShellExecute("GDIPlus_Image.jpg")
    
    
    
    
    ; Clean up resources
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Alles anzeigen
  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Andy
    • 2. Juli 2015 um 18:00

    Hi zusammen,
    ich bekomme in manchen von mir editierten Threads, bspw.HIER unter dem Text eine riesige Menge "Vorschaubilder" ohne Inhalt/Darstellung (lediglich Platzhalter). Kann man das irgendwo abstellen?
    snip.PNG

  • _ColorSetRGB

    • Andy
    • 26. Juni 2015 um 16:31
    Zitat von AspirinJunkie

    Du musst, wie alpines schon schrieb, noch "konvertieren".

    oder die Funktion umschreiben in eine ColorSetBGR, wenn du damit nicht weiterkommst, melde dich!

  • Start- / Endadresse Skript im Speicher finden

    • Andy
    • 26. Juni 2015 um 16:22

    NomadMemory.... :rofl:

    @Mars, du hast vollkommen Recht! Mir spritzt auch der Neid aus allen Poren! Da hat es jemand geschafft, aus SCHE*** Gold zu machen, denn JEDER, der mal ein "U*L*T*R*A*ROXX*O*R"-Coder werden will, nimmt dafür "natürlich" dieses phänomenale Script.

    Mal ganz ohne Spass, dieses #grmblfxx#-Script war eins der Gründe für AssembleIt und AssembleIt2, denn in der FASM.UDF wurde es eingesetzt, das hat mir nicht gepasst!
    Und gebraucht habe ich es noch nie!

    @AspirinJunkie,
    willkommen im Club, ich kenne mich mit diesen "Dingen" auch nicht aus :saint:

  • Base64 | Decode & Encode

    • Andy
    • 25. Juni 2015 um 18:48
    Zitat von 4ern

    Wir bräuchten hier wirklich dringend ein Google Tutorial

    das solltest du dir dann aber auch mal gönnen :D
    base64 site:autoit.defindet im ersten Treffer UEZ´s UDF!

  • Focus bei bestimmten Fenstern verhindern - eine echt harte Nuss

    • Andy
    • 24. Juni 2015 um 13:28
    Zitat von AutoMit

    Ich habe viele Programme zu laufen, die Nachrichten bringen. Z.B. Terminkalender, Anrufmonitor, Chat und mehr. Von Programmen "namhafter" Hersteller, die in einen Fehler laufen und das durch eine Messagebox kundtun, ganz zu schweigen.

    Auf die Programme kann oder möchte ich nicht verzichten. Es geht nicht um destruktive Funktionen, sondern darum, ich dass ich den Inhalt der Messageboxen lesen möchte und zum Teil lesen muss.

    Zitat von AutoMit

    (Ob Millarden von Computeranwendern das gleiche Problem haben oder nicht, spielt keine Rolle. Die wenigsten Menschen wissen von ihren Problemen.

    Und ob das eine Rolle spielt! Genau das ist dein Problem, dass du nur aus deiner Sichtweise herangehst. Wenn Milliarden von Anwendern identische "Probleme" haben, diese aber ggf. auf anderem Weg als den von dir vorgesehenem lösen, wieso schiebst du diese "Lösungen" als nicht für dich relevant zur Seite?

    Übrigens ist es recht seltsam, dass gerade du behauptest, dass die wenigsten Menschen von ihren Problemen wissen! Wie kommst du dazu?

  • Focus bei bestimmten Fenstern verhindern - eine echt harte Nuss

    • Andy
    • 24. Juni 2015 um 13:17
    Zitat von AutoMit

    Du irrst Ich möchte in Autoit ein Fenster als Messagebox erstellen, welches nicht auf User Tastatureingaben reagiert, sondern nur auf einen per Hand ausgelösten Mausklick. Das ist das ein Teil dieses Thema.

    und warum machst du das nicht? Erstelle ein Fenster, erstelle Buttons, welche ausschliesslich auf Mausklicks reagieren, fertig!
    Spannend wird es, wenn das Fenster auf keinerlei Tastatureingaben ( ALT+F4, ALT+TAB usw.) reagieren soll, da solltest du dich intensiv mit dem Messagesystem von Windows auseinandersetzen...

  • UDFs für Autoit

    • Andy
    • 24. Juni 2015 um 07:25
    Zitat von AutoMit

    Gibt es Deine bisherige UDF Sammlung zum Download?

    Gibt es eine UDF-Übersichtsliste von Dir?

    Gerade wiederkehrende Kleinigkeiten würde ich alleine schon deswegen in eine UDF auslagern, damit man diese zentral an einer Stelle für alle Programme nur einmal ändern muss.

    Ansätze, UDF´s zu sammeln gab es schon häufiger, allerdings ist dieses Vorhaben immer wieder eingeschlafen!
    Warum? Weil diejenigen, die solche Threads wie diesen eröffnnen, genau wissen was sie tun und wie sie im Zweifelsfall danach suchen und in kürzester Zeit Lösungen finden. Diejenigen sind es auch, die die "Arbeit" machen (müssen), diese Threads und Listen zu pflegen, zu ergänzen, die UDF´s ggf umzuschreiben usw...

    UDF´s schreibt man auch nicht "zum Spaß"!
    Sondern weil man die Funktionen für EIGENE Projekte braucht!
    Da steckt massig Arbeit drin, denn die anderen "User" wollen/erwarten natürlich ein VOLLSTÄNDIGES Funktionensystem incl. Errormanagement, ein idiotensicheres (wie komme ich nur auf dieses Wort? ) Tutorial, am besten noch in Videoform, und außerdem wird "selbstverständlich" erwartet, dass bei Problemen der UDF-Ersteller die benötigten Scripte korrigiert und bestenfalls komplett schreibt!
    UDF-Funktionen für andere Probleme/Lösungen eigenmächtig umschreiben um diese anderen zur Verfügung zu stellen? Um Gottes Willen!!! Viel zu viel Arbeit! Dann lieber einen Thread erstellen/kapern (PN erstellen ist auch gern gesehen! )und dort mit einem Dreizeiler die eigenen Wünsche DRINGLICH darstellen, irgendwer wird die UDF dann schon entsprechend "für alle" erweitern.....

    Wenn ich Funktionen zu einem bestimmten Thema suche, sind die passenden UDF´s dafür bei entsprechender Googlesuche auf der ersten Seite entweder bei Suche in AutoIt.de oder bei autoitscript.com enthalten....oder sie existieren noch nicht. Da braucht es keine (sowieso immer unvollständige) "Sammlung"!

  • _GDIPlus_***Dispose

    • Andy
    • 23. Juni 2015 um 13:24

    Hi,

    Zitat von Kanashius

    An sich jedesmal, da du bei jedem Aufruf ein neues Brush-Objekt erzeugst. Gibst du es nicht wieder frei bleibt es im Speicher enthalten.

    ...so lange, bis das Script/Programm beendet wird, dann wird der Speicher wieder freigegeben!
    Problematisch wird es erst, wenn während der Programmnutzung durch Leaks/nicht freigegebene Objekte der Speicher vollläuft.

  • String nach zeichen durchsuchen

    • Andy
    • 22. Juni 2015 um 20:18

    Hi,

    die Prospeed.dll wurde von Frank Abbing in Assembler geschrieben, um der Programmiersprache XProfan sehr schnelle Funktionen zur Verfügung zu stellen. Die Prospeed.dll ist imho schon >10 Jahre alt, und funktioniert (warum auch nicht) immer noch problemlos.
    Sie ist aber größtenteils "nutzlos", da die dort vorgestellten Funktionen größtenteils von den gängigen Compilersprachen in ähnlicher Geschwindigkeit umgesetzt werden können.
    Da AutoIt´s interne Funktionen auf gängige (Compiler-)Bibliotheken aufbauen, bleibt der Geschwindigkeitsunterschied minimal, da der Overhead des DllCall´s auch noch etwas Performance frisst!
    Kurz gesagt, die Prospeed.dll braucht trotz der vielen Funktionen heutzutage (leider :( ) keiner mehr...

    Die BoyerMoore.dll wurde vom Kollegen AspirinJunkie in C(++) erstellt. Sehr nice :thumbup:
    Ich habe sie beim Suchen von langen Strings in SEHR großen Datenbeständen im Einsatz. Das Verfahren wird um so schneller, desto länger der Suchstring und so größer der Suchraum ist!
    Boyer-Moore.zip

  • TCP - Datenübertragung -- Ausführbare Dateien gehen nicht

    • Andy
    • 18. Juni 2015 um 19:46
    Zitat von KriZza

    Mich wundert das bei euch ".exe" - Dateien funktionieren, da hier beim Empfang sofort von Binary in String konvertiert wird. Damit zerhaue ich mir doch die .exe oder?

    Gibt es einen Grund, wie du zu dieser Annahme kommst?
    Das eine hat doch mit dem anderen überhaupt nichts zu tun!
    TCP überträgt Bytes, da gibt es keine Restriktionen. Wenn schon bei der Datenübertragung Fehler auftreten, können schlecht intakte Daten auf der Platte landen.

  • Zeilen inklusive Inhalt in einer .Data mit Programm tauschen.

    • Andy
    • 18. Juni 2015 um 13:16

    Hi,
    Was hälst du von folgender Variante:

    Statt diverser "Msgboxen" würde ich eine GUI mit 2 nebeneinander stehenden EDIT/LIST-Feldern erstellen, Text1 im ersten Editfeld(Box1), Text2 im 2. Editfeld(Box2)
    Mausklick auf Zeile in erstem Editfeld markiert diese Zeile, Mausklick auf Zeile im 2. Editfeld markiert diese Zeile .
    Button "Zeilen tauschen" drücken, die beiden markierten Zeilen werden in den Boxen vertauscht angezeigt, Buttontext ändert sich in "Zeilen tauschen übernehmen", klick drauf speichert die beiden Box-Inhalte.
    Damit sparst du dir die Zahleneingeberei und die "Messageboxen".

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™