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

Beiträge von name22

  • For...To...Next abbrechen

    • name22
    • 26. Mai 2012 um 00:00

    Ansonsten tuts natürlich auch ein simples

    [autoit]

    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit

    [/autoit]

    in der For Schleife. ^^

  • Pixel eines Icons einfärben

    • name22
    • 25. Mai 2012 um 22:11
    Zitat

    Das Problem ist, dass nach dem Minimieren und Wiederherstellen des Fensters nur noch der Lüfter zu sehen ist.


    Dann musst du per GUIRegisterMsg das $WM_PAINT Event mit einer Funktion assoziieren die den Backbuffer zurück auf den Frontbuffer zeichnet. Also _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0).

    Zitat

    Zum anderen wird auch nur dieser in das PNG gespeichert.


    Da brauchst du dich nicht zu wundern, immerhin zeichnest du nur einmal nach Erzeugung der Grafik den farbigen Bestandteil (u.A. _GDIPlus_GraphicsDrawEllipse($graphic, 5, 5, 90, 90, $Pen)) direkt auf die Grafik anstatt das ganze in den Backbuffer zu zeichnen, wie den ganzen Rest. Außerdem versuchst du die Rückgabewerte von _GraphicsDrawEllipse etc. mit DrawImageRect auf eine Grafik zu zeichnen :wacko: ... Die Funktion zeichnet direkt eine Ellipse auf eine Grafik und gibt lediglich einen boolean Wert zurück (True=Erfolgreich; False=Error). DrawImageRect benötigt zum zeichnen ein Handle zu einem Bild wie das was von ImageLoadFromFile zurückgegeben wird.
    Dein Code muss aber noch an einigen anderen Stellen verbessert werden. Aber das was du momentan erarbeitet hast würde ich nicht dauerhaft auf meinem PC laufen lassen ^^.

    Zitat

    Zum anderen wird auch nur dieser in das PNG gespeichert.


    Selbes Problem wie vorhin. Du verwechselst die Bitmap (Backbuffer) mit der Grafik der GUI (Frontbuffer). Den Teil den du vermisst zeichnest du nur einmal relativ weit am Anfang des Scripts direkt auf die Grafik der GUI, die Bitmap kriegt davon nie was zu sehen. Danach speicherst du die Bitmap wo bis jetzt nur das Bild aus $figur drin ist.

    Zitat

    Außerdem soll es ja das Format ICO sein, da es als TrayIcon verwendet werden soll. Könnt ihr mir helfen?


    Das geht meines Wissens nach mit GDI+ nicht direkt, bzw. liefert keine brauchbaren Ergebnisse.. Ein wenig Googlen hat das hier zu Tage gefördert:
    http://www.autoitscript.com/forum/topic/93…on-to-ico-file/
    http://www.autoitscript.com/forum/topic/10…on-to-ico-file/

  • Automatisierter und beinahe sicherer Zugang zum Internet-Banking

    • name22
    • 24. Mai 2012 um 15:37

    Ich verstehe nicht ganz was du hast Mike... Chip hat nach einer Erklärung bezüglich deiner Aussage "sicherer Zugang" gefragt, ich hab mich gewundert warum du Call() verwendest um jegliche Funktionen aufzurufen, obwohl "Funktionsname(Parameter)" den selben Effekt hat und sogar schneller ist. Call benutzt man für gewöhnlich nur um den Funktionsaufruf variabler und nach dem compilen veränderbar zu gestalten. Zu dem Zeitpunkt hat dich noch keiner in irgendeiner Form kritisiert..
    Wenn du dein Programm als sicher bezeichnest und es ist alles andere as sicher, aus der Sicht eines erfahreneren Programmierers, dann brauchst du dich doch nicht wundern wenn du darauf hingewiesen wirst. Schließlich stellen die meisten ihre Skripte im Forum "Skripte" vor um Rückmeldungen/Kritik zu erhalten. Das du ein Anfänger bist ist allen klar die deinen Code sehen (das soll jetzt nicht herablassend klingen), also weisen wir dich auf Fehler u.Ä. hin.
    Und Chips Vorschlag ein Tutorial und die Hilfe zu konsultieren stimme ich zu, immerhin sollte man schon wissen wie ein klassischer Funktionsaufruf evtl. mit Parametern aussieht. Das ist nun mal Grundwissen und für fortgeschrittene Programme essenziell.

  • Automatisierter und beinahe sicherer Zugang zum Internet-Banking

    • name22
    • 23. Mai 2012 um 21:52

    Wieso rufst du alle Funktionen mit Call() auf?

  • Sudoku Generator - Backtracking Problem

    • name22
    • 13. Mai 2012 um 17:22

    Lange her, dass ich in Hilfe & Unterstützung einen Thread erstellt habe..
    Zu meinem Problem:
    Ich habe ein kleines Sudoku Programm in AutoIt geschrieben. Das funktioniert schon mal ganz gut. Die Darstellung per GDI+ ist korrekt, die Eingabe der Zahlen funktioniert und die Überprüfung der Eingaben sollte auch korrekt funktionieren.
    Leider klappt es mit der Funktion _Generate() (soll ein komplett ausgefültes Sudokufeld erzeugen) noch nicht besonders gut... Die Funktion läuft in etwa so ab (rekursiver Prozess):
    - Feld Nr. 1 bekommt Zufallszahl zwischen 1 und 9 zugewiesen.
    - Überprüfung auf Regelverstoß
    -> Regelverstoß, Return 0
    -> Kein Regelverstoß, Funktion für nächstes Feld aufrufen


    Sobald die Funktion alle Zahlen ausprobiert hat, wird sie per Return verlassen und zur vorherigen Ebene zurückgekehrt. Dort wird dann die nächste Zahl eingesetzt usw...


    Das Problem ist, dass die Funktion auch bei langer Laufzeit kein Ergebnis liefert sondern unaufhörlich weiter experimentiert. Als ich zusätzlich davor noch 3 voneinander unabhängige Blöcke mit Zahlen von 1 bis 9 gefüllt habe um zumindest ein paar richtige Zahlen am Anfang zu haben, ist die Funktion mit Rückgabewert 0 ausgestiegen. Das heißt, laut Funktion gibt es keinen möglichen Lösungsweg. Das kann doch aber nicht sein... ?(


    Da ich mittlerweile den Wald vor lauter Bäumen nicht mehr sehe, dachte ich mir ich frag mal hier nach. ;)
    Vielleicht ist es ja wieder ein eigentlich offensichtlicher, kleiner Fehler den bloß ich nicht mehr erkennen kann..

    Edit: Ich hab das Problem nun selbst gelöst... Es lag an der Überprüfungsfunktion :pinch: . Ich hab das Script fürs erste entfernt, die funktionsfähige Version werde ich dann vermutlich in Scripte posten.

  • Email Adresse prüfen

    • name22
    • 9. Mai 2012 um 14:34

    Eventuell kann man manuell das vrfy Request an den Server per AutoIt senden, ich bin mir ziemlich sicher dass es irgendwie geht, ich weiß aber leider nicht wie.
    Außerdem kann es auch sein, dass ein Server auf solche Reuqests nicht reagiert, oder irre ich mich da?

  • Email Adresse prüfen

    • name22
    • 9. Mai 2012 um 14:24

    Hm.. Wie wäre es wenn du noch die Serveradresse per RegEx aus der Email Adresse rausfilterst und den Server anpingst um zu sehen ob der überhaupt existiert?
    Ließt Thunderbird diese Daten nicht aus einer Datenbank mit den bekanntesten Email Anbiertern aus?

  • Email Adresse prüfen

    • name22
    • 9. Mai 2012 um 14:13

    Zufällige Zeichenfolge generieren, an Email Adresse senden, generierten Code von Benutzer abfragen. ;)
    Falls du überprüfen willst ob die Email Adresse überhaupt eine Email Adresse sein kann, kannst du bei Google mal nach einem RegEx Pattern suchen und die Email dann mit StringRegExp überprüfen.
    Falls du etwas anderes meintest, dann musst du dein vorhaben mal genauer beschreiben.

  • Auf Webseite: ComboBox bzw. Dropdown-Liste aufklappen und Element auswählen - korrekte Methode?

    • name22
    • 9. Mai 2012 um 12:22

    Falls damit deine Probleme gelöst wurden, kannst du ja noch das Präfix deines Threads auf gelöst setzen indem du den ersten Beitrag bearbeitest. ;)
    ControlCommand und auch alle anderen Control... Befehle kannst du übrigens mit Firefox vergessen. Firefox zeichnet Webseiten mithilfe von Gecko auf den Bildschirm und dabei kommen keine Controls zum Einsatz (zumindest keine die man ohne weiteres ansteuern könnte).

  • Inputbox-Inhalt auf Zahl oder String prüfen

    • name22
    • 8. Mai 2012 um 10:30

    SEuBo An StringIsDigit hab ich ja gar nicht gedacht :D. Aber beim StringRegExp Äquivalent fehlt noch ein (?m) soweit ich weiß.

  • Inputbox-Inhalt auf Zahl oder String prüfen

    • name22
    • 8. Mai 2012 um 10:24
    Zitat

    Was mach ich falsch?


    Eigentlich nichts.. Der Rückgabewert einer InputBox scheint immer vom Typ String zu sein. Eventuell kann man es so lösen (auch wenn es nicht so optimal ist):

    [autoit]

    ;Nicht getestet
    $vValue = InputBox("Input", "Value:")
    If StringRegExp($vValue, "\A\d+\z") Then MsgBox(64, "Result", "Value is Number")

    [/autoit]
  • Auf Webseite: ComboBox bzw. Dropdown-Liste aufklappen und Element auswählen - korrekte Methode?

    • name22
    • 7. Mai 2012 um 17:14

    Mir ist das meistens zu blöd, deswegen mach ich das immer möglichst alles per WinHTTP oder TCP... Das heißt, ich kenne mich mit der FF.au3 nicht mehr so gut aus. ^^
    Dennoch funktioniert das hier bei mir (Abwandlung des Beispiels zu _SetValue):

    [autoit]

    #Include <FF.au3>

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

    If _FFStart("http://ff-au3-example.thorsten-willert.de/", Default, 2) Then
    _FFSetValue("Schinken", "grundlage", "name")

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

    _FFDisConnect()
    EndIf

    [/autoit]
  • Auf Webseite: ComboBox bzw. Dropdown-Liste aufklappen und Element auswählen - korrekte Methode?

    • name22
    • 7. Mai 2012 um 16:46

    Geht es dabei speziell um das auslesen von dict.cc, oder ist das nur ein Beispiel? Ich frage nur, weil oft in den AGB der Seiten ein Automatisierungsprozess untersagt wird. Sowas können wir dann laut unseren Forenregeln nicht unterstützen ;).
    Im Fall von dict.cc:

    Zitat von Nutzungsbedingungen

    Sämtliche Dienste von dict.cc können kostenlos privat und geschäftlich im Web-Browser genutzt werden. Andere Arten der Nutzung, insbesondere automatisiertes Abfragen (Parsen) von dict.cc sind nur mit ausdrücklicher Genehmigung gestattet.


    Eventuell hilft dir auch das hier noch weiter: [Tut] FF.au3 – AutoIt-Funktionen im Browser
    Wobei ich mir nicht sicher bin, wie aktuell das ist :S. Das Prinzip sollte sich aber nicht großartig geändert haben.
    Sonst findest du auf http://thorsten-willert.de/ unter Software > FF.au3 auch Beispiele und eine Dokumentation die einige Funktionen näher erläutert.

  • Render Wissen - flexible Framerate Management

    • name22
    • 6. Mai 2012 um 15:09

    Die Funktion Sleep pausiert das Script an dieser Stelle mehr oder weniger genau für die angegebene Zeit (das sollte größtenteils unabhängig vom PC sein). Du übersiehst aber, dass alle anderen Funktionen in der Hauptschleife nicht wie durch Zauberei ohne Zeitverlust ausgeführt werden. Da steckt ein gewisser Rechenaufwand dahinter, der abhängig von der Hardware die Funktion mehr oder weniger verlangsamt. Sleep schläft aber trotzdem immer noch solange wie angegeben und berücksichtigt nicht den Zeitverlust der anderen Funktionen. Und um das zu kompensieren verwendet man ein System wie das aus diesem Thread.

  • Wie mache ich des damit ich bei meinem musik Player vor und zurückspulen kann? und dazu noch mir anzeigt bei welcher zeit der abgespielte song ist?

    • name22
    • 6. Mai 2012 um 15:01
    Zitat

    Dein player bringt mir überhaupt nichts weil der Nämlich nicht so aufgebaut ist wie meiner dein player hat massig andere sache drinnen als mein player.Du hättest erstmal oben dir den Quelltext meines scriptes ansehen sollen ich kann mit deinem Player leider noch nichts anfangen.


    Vielleicht hättest du dir erst mal den Quellcode seines ansehen sollen.... :whistling:
    Lass dich nicht von einer Menge Code beeindrucken, sondern konzentriere dich auf das wesentliche :rolleyes: . Was verwendest du um den Sound abzuspielen? Richtig, die Sound.au3. Was hat autoBert als include in seinem Scrip gelistet? Genau diese UDF.
    autoBert's Player ist selbstverständlich anders aufgebaut als deiner... Hast du eine perfekte Vorlage erwartet, die auf einem System aufbaut, dass du dir ausgedacht hast? ^^
    Betrachte den Quellcode mal systematisch. Du suchst nach einer Möglichkeit, die Musikdatei vor/zurück zu spulen. Die einzige Funktion in autoBerts Script die dazu passt ist _setPos.
    Wenn du dir nun den Inhalt dieser Funktion gesondert anschaust und dir Zeit nimmst verstehst du vielleicht wie das funktioniert. Falls nicht ist es besser zu fragen, als eine andere Erklärung zu verlangen.
    Du kannst die Funktion auch mit Beispielwerten füttern und per ConsoleWrite überprüfen was damit geschieht (dort sind teilweise noch solche Zeilen auskommentiert vorhanden).
    Ich denke du musst dir vorher erstmal klar machen, wie so ein Vor-/Zurückspulvorgang abläuft. Dabei wird nämlich auch nur die Abspielposition basierend auf der aktuellen Position neu gesetzt, nur eben eine halbe Sekunde weiter vorher oder später.

  • Render Wissen - flexible Framerate Management

    • name22
    • 6. Mai 2012 um 00:24
    Zitat

    Inwiefern meinst du ausgefeilter?


    Nunja.. Deine Beispiele bestehen ja nur aus Pseudocode und verwenden die Sleepfunktion, die dafür eher weniger geeignet ist. Ich verwende ZwDelayExecution() in ausführbaren Scripts. Das meinte ich ;).

    Zitat

    Kannte ZwDelayExecution() nur vom "HörenSagen", habe allerdings noch keine genaue Beschreibung zu dieser Funktion gefunden.
    Kennst du/jemand eine Detaillierte?


    Was verstehst du denn nicht bzw. was wüsstest du gern? ZwDelayExecution ist eine Funktion der ntdll.dll von Windows, die den Scriptablauf, durch einen Aufruf per DLLCall, für eine bestimmte Zeitspanne pausiert. Die Zeit wird in Einheiten von 0.1 Microsekunden angegeben. Also wenn ich 2500 Millisekunden pausieren will, dann gebe ich an die Funktion den Wert 2500*1000*10=25000000 weiter.

  • Render Wissen - flexible Framerate Management

    • name22
    • 5. Mai 2012 um 23:43

    Informativ, wenn auch ein bisschen kurz ^^. Ich verwende das selbe Prinzip (wenn auch ausgefeilter) schon seit einiger Zeit in meinen animierten GDI+ Anwendungen. Siehe dazu meine Signatur ;).
    Die Sleep Funktion eignet sich allerdings eher nicht so gut für diese, im Millisekunden Bereich variierende, Zeitspanne. Mögliche Lösungen sind das Workaround von Marsi in seinem Thread dazu und die HighPrecisionSleep Funktion, welche im englischen Forum zu finden ist.

  • WinAPIx

    • name22
    • 5. Mai 2012 um 21:24
    Zitat

    Das wird ihm nicht helfen. Dann das Script ist ein einziges Trauerspiel (überall fehlen Anführungszeichen) und außerdem soll es ein Bot werden. AutoIt gibt 117 (!) Fehler zurück. Er hat mir das Script per PN geschickt.


    Hätte ich das mal früher gewusst... Aber da immer noch 116 Fehler verbleiben, kann ich wenigstens sicher sein, dass ich seinen Bot nur geringfügig vorangebracht habe :D.
    Falls hier zufällig ein Mod vorbeischaut, evtl. könnte man diesen Thread schließen. Dann gibt es keinen weiteren Bot-Support, und andere mit dem selben Problem können trotzdem hier die Lösung finden.

  • WinAPIx

    • name22
    • 5. Mai 2012 um 20:21

    Hast du schon mal in die Hilfe geschaut oder ein Tutorial gelesen? Wenn nicht, empfehle ich dir mal bei den "Wichtigen Links" (Links neben den Beiträgen) vorbeizuschauen. Es sollte entweder

    [autoit]

    #include <WinAPIEx.au3>

    [/autoit]

    heißen wenn deine Datei im include-Verzeichnis ist, oder

    [autoit]

    #include "WinAPIEx.au3"

    [/autoit]

    wenn die Datei im Scriptverzeichnis ist.

    BTW: Gibt es einen bestimmten Grund dafür, dass du diesen Thread gleich 4mal erstellt hast? :pinch:
    Ich hab jetzt nur einen davon freigeschaltet, der Rest wird dann gelöscht. Das nächste mal lässt du das bitte...

  • GDI+ 3D Object Viewer (Wavefront .obj Format)

    • name22
    • 3. Mai 2012 um 21:32
    Zitat

    Ich habe es mit einem 80 000 Poly Objekt getestet und nach 5min. hab ich es gestoppt weil es einfach zu lange dauert.


    Ich dachte das wäre ersichtlich ^^.
    Selbst wenn du geduldig genug bist, es würde nachher vermutlich mit ca. 0.00001 FPS laufen... Dafür ist das ganze aber überhaupt nicht gedacht. Wie bereits erwähnt, wirkliche Anwendungsgebiete gibt es nicht, reine Spielerei ;).

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™