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

  • PixelPixelChecksum und Timer

    • name22
    • 2. Juni 2012 um 00:22

    Wenn ich das richtig versteeh, willst du 2 verschiedene Dinge tun lassen. Einmal eine Funktion ausführen wenn sich etwas ändert. Und dann eine MsgBox ausgeben wenn sich nichts ändert.
    Aber: Wie schnell aktualisieren sich diese Koordinaten? So schnell, dass du sicherstellen kannst, dass in ein paar Milliskunden nie 2 mal der selbe Wert ausgelesen wird?
    Und könnte man nicht eine Art Switch Abfrage machen die je nach Cheksum Ergebnis entweder Funktion ausführt oder MsgBox anzeigt?

  • Irrlicht hat Grund zum Feiern!

    • name22
    • 2. Juni 2012 um 00:16

    Mensch das hab ich schon wieder übersehen :D. Herzlichen Glühstrumpf Irrlicht! Alles Gute zum 18ten :thumbup: .

  • PixelPixelChecksum und Timer

    • name22
    • 1. Juni 2012 um 23:50
    Zitat

    aber das ohne den Sleep Befehl


    Ich verstehe zwar nicht ganz wieso du das willst, aber das geht entweder mit jeder der folgenden Funktionen:

    [autoit]

    _Timer_SetTimer
    AdlibRegister
    TimerInit

    [/autoit]


    Wenn du das mit normalen Timern machen willst, brauchst du eine zusätzlicher Endlosschleife die immer die vergangene Zeit abfragt. Da ist Sleep aber fast effektiver. Und für den Zwecke würde ich auf _Timer_SetTimer oder AdlibRegister zurückgreifen.

    Und die Logik hinter deinen Checksum Vergleichen verstehe ich immer noch nicht. Wieso willst du abfragen ob sich nichts geändert hat (und das auch noch in so kurzen Abständen).

  • PixelPixelChecksum und Timer

    • name22
    • 1. Juni 2012 um 23:41
    Zitat

    wenn ich das so versuche gibt er mir trotzdem am laufenden Band die msgBoxen aus...


    Was soll da auch sonst passieren? Dein Code gibt immer dann eine MsgBox aus, wenn eine Sekunde vergangen ist und die beiden Prüfsummen übereinstimmen (d.h. wenn sich innerhalb von ein paar Millisekunden nichts in dem Bildschirmbereich geändert hat).
    Da die If Abfrage direkt nach dem ersten PixelChecksum kommt, liegt dazwischen nur die Zeit die die zweite PixelChecksum benötigt um einen Wert zurückzugeben (wenige Millisekunden, maximal). Wenn du ein reguläres Fenster damit überwachst, wird sich in dieser Zeit dort nicht viel ändern...

  • Zwei geladene Bilder zusammenfassen

    • name22
    • 1. Juni 2012 um 18:48

    Erstelle eine neue leere Bitmap entweder mit GDIPlus_BitmapCreateFrom Graphics oder mit der GDIP.au3 Funktion _GDIPlus_BitmapCreateFromScan0.
    Dann erstellst du ein Graphics-Object für die Bitmap mit ImageGetGraphicsContext. In diese zeichnest du dann mit _GDIPlus_GraphicsdrawImageRect beide Bilder rein.
    Die Grafik und die 2 alten Bilder kannst du dann aus dem RAM entfernen (mit den Dispose Funktionen). Die Bitmap kannst du dann mit _GDIPlus_GraphicsdrawImageRect auf jede beliebige Grafik zeichnen, dort sind dann beide Bilder drin.
    Wenn allerdings beide Bilder die selbe Größe haben, könntest du dir auch überlegen einfach das eine Bild in das andere zu malen. Selbe Prozedur wie oben.

  • Neuer Computer, aber woraus ?

    • name22
    • 1. Juni 2012 um 18:19

    Wollte ich auch grad sagen :D. Mit den HXX Boards kannst du zwar die Intel Grafikeinheit der CPU nutzen, aber übertakten von K CPUs über den Multiplier ist wohl nicht drin.
    Also wenn du dir dieses Mainboard kaufst, brauchst du keine K Version der CPU. Die Z77 unterstützen das aber auf jeden Fall. Kannst ja bei ASRock.com nachschauen (guck dir da einfach mal alle 77er Boards an.).
    ASRock kann ich nur empfehlen, bin mit meinem P67 echt zufrieden.

  • Neuer Computer, aber woraus ?

    • name22
    • 1. Juni 2012 um 17:58

    Ich denke mit einem i5 dürftest du für eine ziemlich lange Zeit zufrieden sein. Irgendwann werden wir bei der CPU Entwicklung sowieso an die physischen Limits stoßen. Dann muss man auf andere Materialien umsteigen und das wird ewig dauern.
    Wenn du übertakten willst, dann kaufst du dir am besten eine k Version. Viel einfacher wird das übertakten dann auch nicht mehr. Übertreiben sollte man es natürlich trotzdem nicht ^^. Mein i5 2500k läuft momenten bei 4GHz und ist völig stabil, wird nicht zu heiß, verbraucht nicht zu viel Strom etc. Ich kann mir nicht vorstellen, dass du mehr Leistung benötigst als ein 4GHz Quadcore liefern kann wenn du nur vorhast ein paar Spiele auf akzeptablen Einstellungen zu spielen. Meine i5 2500k - GTX 570 Kombination packt fast jedes aktuelle Spiel auf Maximalen oder zumindest hohen Einstellungen.

  • Neuer Computer, aber woraus ?

    • name22
    • 1. Juni 2012 um 17:43
    Zitat

    Deshalb hab ich auch geschrieben, dass er sich dann demnächst auch eine neue Graka zuzulegen sollte ;)


    Das ist nicht das einzige Problem. Wie schon gesagt, ich kenne kaum ein Spiel, dass mehr als 4 kerne/Threads nutzt. Und wenn man von der Anzahl der virtuellen Kerne absieht, ist der Unterschied zwischen i5 und i7 nicht groß genug für den preis. Meiner Meinung nach versteht sich. Außerdem... Welche Anwendung benötigt mehr als eine effiziente 3.5-4.0GHz CPU? Selbst 3D Modelling mit Cinema4D 3DMax etc. geht damit schon recht fix.

  • Neuer Computer, aber woraus ?

    • name22
    • 1. Juni 2012 um 17:27
    Zitat

    falls du etwas Geld übrig hast auch ein i7-2600k wobei die sich nicht


    Das lohnt sich meiner Meinung nach auf einem Mittelklasse Gaming PC mit einer älteren Grafikkarte kein bisschen. Besonders wenn man den Preis betrachtet.

  • Neuer Computer, aber woraus ?

    • name22
    • 1. Juni 2012 um 16:34
    Zitat

    Der PC sollte eine hohe Rechenleistung besitzen und für Computerspiele/Sonstige rechenintensive Anwendungen noch ein Paar Jahre aktuell sein.


    Wenn du von aktuellen Spielen sprichst, bin ich mir nicht sicher ob du da mit 400€ hinkommst... Es kommt natürlich darauf an, um welche Spiele es sich handelt, mit welchen Einstellungen du spielen willst und auf welcher Auflösung.
    Willst du mit dem PC hauptsächlich zocken? Wenn ja, würde ich eher in einen guten QuadCore investieren und die HexaCores erstmal links liegen lassen. Die meisten Spiele können mit sovielen Cores nicht allzu viel anfangen. Das heißt, auch Intels Hyperthreading Gedöns würde nicht viel bringen. Wenn du aber auch viel mit Videobearbeitung, 3D Modelling etc. machst sieht das wieder anders aus.
    Ob sich 2 Grafikkarten bei einem 400€ PC lohnen?.. Das bezweifle ich. Vermutlich wäre da die Investition in eine einzelne teurere Karte sinnvoller. Ganz perfekt arbeiten die nämlich auch nicht zusammen. ;)

    Bei der Gelegenheit möchte ich allerdings auch auf einen relevanten Text hinweisen, der seit Längerem unter "Nachrichten" im Portal zu lesen ist :whistling: ...

  • ID zu Map-Koordinaten finden

    • name22
    • 31. Mai 2012 um 17:11

    Das ist nicht schwer. Dazu braucht man nur ein bisschen Mathematik. Wie sollen jetzt die IDs aussehen? Wie im ersten Beispiel linear von 0-191 oder 2-dimensional (0/1, 1/2...) wie im zweiten?
    Und mit Koordinaten meinst du die Koordinaten bezogen auf das Rechteck das entsteht wenn du alle Felder in einem 16*12 Gitter anordnest?

    Edit:
    Nur mal als Beispiel mit den IDs von 0-191:

    [autoit]

    ConsoleWrite(_GetID(15*40, 11*40) & @CRLF)

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

    Func _GetID($iX_Coord, $iY_Coord)
    Return Floor($iX_Coord + $iY_Coord * 16) / 40
    EndFunc

    [/autoit]
  • endlos funktion

    • name22
    • 31. Mai 2012 um 15:22
    Zitat

    Genau das will er doch aber auch stayawayknight


    Er sagt nur, dass er 5 Arrays bereits als Parameter hat... Aber wenn die verschiedene Größen/Dimensionen haben ist stayawayknights Vorschlag natürlich besser geeignet.

  • endlos funktion

    • name22
    • 31. Mai 2012 um 14:05
    Zitat

    So lassen sich vielleicht komplexere Umformungen in Multidimensionale Arrays vermeiden...


    Ich versteh nicht was daran komplexer sein soll... Das kommt fast auf das selbe raus, nur muss man bei deiner Methode vorher noch das Element des ersten Arrays in eine Variable speichern bevor man an das darin enthaltene Array rankommt.
    Die einzige Ausnahme ist natürlich wenn die Arrays verschieden viele Elemente haben. Dann wird es mit multidimensionalen Arrays schwierig. Aber das kommt darauf an was genau AutoItFreak machen will.
    Erleuchte uns AutoItFreak ;). Sonst können wir hier nur wild spekulieren.

  • Wert in .txt suchen und die Zeile zurückgeben

    • name22
    • 31. Mai 2012 um 13:09

    Dann probier es mal so:

    [autoit]

    $sDataRaw = FileRead(@ScriptDir & "\YourFile.txt")
    $aProblem = StringRegExp($sDataRaw, "(?s)Problem: (.+)", 3)

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

    ConsoleWrite($aProblem[0])

    [/autoit]
  • Wert in .txt suchen und die Zeile zurückgeben

    • name22
    • 31. Mai 2012 um 12:19

    Kommt nach der Problembeschreibung noch etwas? Oder ist das immer das letzte Element? Wenn nicht, was kommt danach?
    Irgendwie muss das Pattern ja wissen wo es aufhören soll ^^.

  • endlos funktion

    • name22
    • 31. Mai 2012 um 12:00
    Zitat

    ja aber in dieser funktion übergebe ich schon fünf arrays
    und ich will aber das der benutzer noch mehr hinzufügen kann


    Das ist ja schön und gut, aber leider nicht möglich in AutoIt. Zumindest nicht so wie du es in deinem ersten Post erklärt hast.
    Wie ist diese Funktion denn aufgebaut? Wie sehen die Arrays aus die bereits Parameter sind? Wie viele Dimensionen haben sie? Ich bin mir sicher, dass wir da irgendwas basteln können.
    Vermutlich am ehesten mit einem multidimensionalen Array.

  • Wert in .txt suchen und die Zeile zurückgeben

    • name22
    • 31. Mai 2012 um 11:02

    Also kann die Problembeschreibung auch über mehrere Zeilen gehen? Und gibt es nur eine Problembeschreibung etc. pro Datei?

  • endlos funktion

    • name22
    • 30. Mai 2012 um 20:27
    Zitat

    Machs doch mit Arrays, kannste zwar nicht unenendlich viele Parameter machen, aber über ne Million bestimmt.


    Das wurde doch schon 2 mal gepostet ?(.
    Und um genau zu sein sind es: "Arrays: A maximum of 64 dimensions and/or a total of 16 million elements" also theoretisch kannst du 1.6x10⁷ Parameter per Array übergeben. Mit mehreren Dimensionen natürlich noch viel mehr. Allerdings geht dir da irgendwann der Arbeitsspeicher aus.

  • endlos funktion

    • name22
    • 30. Mai 2012 um 18:38

    Eventuell kannst du das Array dann auch als ByRef Parameter übergeben. Das erhöht (besonders bei großen Arrays) die Geschwindigkeit des Funktionsaufrufs.
    Dabei musst du allerdings beachten, dass alle Änderungen die du am Array innnerhalb der Funktion machst auch beim Array außerhalb der Funktion erscheinen, denn es handelt sich um das selbe Array.
    Wenn du das Array als normalen Parameter übergibst, wird eine lokale Kopie des Arrays für die Funktion erstellt, und es werden keine Änderungen außerhalb der Funktion übernommen.
    BitOR, BitAND und wie sie alle heißen, können nur eine (fast) beliebige Anzahl von Parametern übernehmen, weil sie interne AutoIt Funktionen sind. Die werden komplett anders interpretiert als in AutoIt geschriebene Funktionen.

  • Frage zur GUI

    • name22
    • 30. Mai 2012 um 17:31
    Zitat

    war mir grade nur nicht klar wieso ihr exakt die selben benutzt habt =)


    Das ist vermutlich zum Teil Zufall.. Aber es gibt auch bestimmte inoffizielle Richtlinien an die sich natürlich keiner halten muss. Die sollen lediglich das lesen von Code einfacher machen.
    Generell ist es üblich, englische Variablennamen zu verwenden, die Variablen logisch und übersichtlich zu bennenen und ungarische Notation zu verwenden.
    Da in den Beispielen der Hilfe schon seit Ewigkeiten $nMsg als Rückgabewert von GUIGetMsg benutzt wird machen das jetzt fast alle so. Auch in den meisten Tutorials wird das so gemacht.
    Aber da wir den erweiterten Modus von GUIGetMsg verwenden ist das präfix nicht 'n' sondern 'a' weil GUIGetMsg statt einer Zahl ein Array zurückgibt (siehe ungarische Notation).

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™