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

  • Happy Birthday Oscar

    • Andy
    • 18. Januar 2013 um 16:29

    Glücklichen Herzwunsch und alles Gute!

  • ogl4au3 2.0 Alpha - Zweite große OpenGL UDF mit vielen Beispielen

    • Andy
    • 17. Januar 2013 um 19:20

    Naja,
    die Frage ist, ob ich jemandem den Umstieg von GDI nach OpenGL schmackhaft mache, indem ich ihm mit 50 Zeilen GL-Code zeige, was er mit GDI in 5 Zeilen hinbekommt...
    Dass bei GL 50% der Befehle "Standard" sind, die immer und ewig in jedem Programm durchgenudelt werden müssen, weiss der GDI-User vorher nicht!

    Wenn ich aber (schau dir dazu meine Beispiele in OpenCl an) eine Zeile "abstrahierten GL-Code" fürs Fenster erstellen habe, eine weitere, um eine *.PNG in diesem Fenster darzustellen, eine dritte, um einen xyz-Filter über diese Grafik laufen zu lassen, ja DANN wird der GDI-Fuzzi plötzlich wach ;)
    3D alleine ist ja nur die halbe Wahrheit, auch in 2D hat OpenGL Vorteile.

    Zitat

    Sonst bringen allgemeine Tutorials für OpenGl den Nutzern nichts mehr

    Ganz ehrlich, schau dich mal im Internet zum Thema "allgemeine Tutorials" um. Wenn der "Nutzer" davon 5% gebrauchen kann, dann ist das bestimmt nicht weit weg von der Wahrheit. Ich brauche ein Tutorial, um herauszufinden, ob ich mein Problem mit einfachen Mitteln und einem entsprechenden Werkzeug lösen kann.
    Ich habe ca. 1h damit zugebracht, die "wehende Deutschlandfahne" aus deinem Beispiel vollflächig gerade und fensterfüllend, also "native 2D" darzustellen. Mit Hilfe von ca. 5 weiteren "Tutorials" aus dem Inet. Soviel dazu :rolleyes:
    Dass diese Aktion auch noch 20 Zeilen Code braucht, und ich bei den meisten Funktions-Parametern auch noch rumspielen musste um herauszubekommen, was sie für einen Zweck erfüllen, hat mich ehrlich gesagt nicht begeistert!

  • ogl4au3 2.0 Alpha - Zweite große OpenGL UDF mit vielen Beispielen

    • Andy
    • 16. Januar 2013 um 20:37

    die Extensions-Funktionen sitzen größtenteils als Pointer-Adresse in der dll, da isses dann einfach, hab mir nen universellen "Aufrufer" geschrieben. Der holt sich über GetProcAddress() den Pointer und called per DllCallAddress() dann die dort liegende Adresse.
    Muss jetzt nur die in der dll liegenden Funktionen und Aufrufparameter auseinanderklabustern...
    Für die Typen schreib ich mir ne Ersetzungstabelle, ist am einfachsten.

    Aber zuerst muss ich mal mein Script funktionsfähig haben und überhaupt KAPIEREN was da Sache ist mit OpenGL^^
    Ich werde dann "einfachst"-GL-Funktionen haben und alles kapseln, was unnötig ist. Sozusagen dem User vorbestimmen, was er am Ende sehen soll im Fenster^^
    Ziel ist, sehr simpel per CL die Bufferdaten von GL zu manipulieren, das hab ich so weit schon lauffähig. Erst mal in 2D, 3D ist nur noch ne Fleißarbeit. Natürlich kann man die Shader immer noch über GL-Befehle beeinflussen, also Kamerafahrten usw sind dann Sache von Freaks wie dir^^

    Der Speedunterschied zum GDI-"blitten" ist jedenfalls gewaltig, habe schon Funktionen, um die Ausführungszeiten und Buffertransferzeiten vom CL-Kernel zu messen, die Ergebnisse sind Beeindruckend....

  • Welchen E-Mail Anbieter nutzt ihr?

    • Andy
    • 16. Januar 2013 um 19:49

    Bin einer der ersten AOL-Kunden in Deutschland gewesen, das wird ca. 20 Jahre her sein.
    Seit dem dort 5 Accounts (Familie), und wenn es hoch kommt, hab ich in der Woche 10 Spam-Mails (für alle 5 acc), die aber dann mein MailProgramm (in Opera) wegfiltert...

    1 Account bei der t-com, selten genutzt (Telefonrechnung, Routerkonfig)

  • ogl4au3 2.0 Alpha - Zweite große OpenGL UDF mit vielen Beispielen

    • Andy
    • 16. Januar 2013 um 19:40

    Hi,
    im Zuge der Zusammenarbeit von OpenGL und OpenCL benötigte ich einige Funktionen der glew32.dll
    glew ist, so wie ich das jetzt überblicken kann, mit hunderten Funktionen am Start. Eine Handvoll dieser Funktionen habe ich schon konvertiert.

    minx, hast du einen "C nach AutoIt"-Konverter, den du auf die *.h-files loslässt?
    So etwas ähnliches hatte ich mir für die Konvertierung von OpenCl nach AutoIt geschrieben, allerdings war noch bissl Handarbeit nötig, vor allem die Typen bei den DllCall´s sind imho bissl schwierig automatisch zu ermitteln.

  • Wie kommt ihr auf euren Nicknamen?

    • Andy
    • 15. Januar 2013 um 19:26

    Hi,

    Zitat

    Mein Vater wollte mich Andreas nennen und meine Mutter Marcus.

    hehe, genau so wars bei mir vor nem halben jahrhundert auch^^

    Zitat

    (Da die Frau aber mehr zu sagen hat ist der Marcus nach vorne gerutscht).

    ...da mein Vater nach meiner Geburt gefragt wurde wie das Kind heissen soll, heisse ich NICHT Marcus, sondern Andreas

    In der Schule im Englisch-Unterricht bekam ich von unserer Englischlehrerin den Namen "Andrew" verpasst. Das fand ich total übel, aber alle meine Kumpels riefen mich glücklicherweise "Andi" (nicht ÄNDIII). Da es aber haufenweise Andreasse damals gab, und alle "Andi" hiessen, wurde ich der "Andy" (gesprochen Andi)

  • Wie wird ein String in Base64 verwandelt?

    • Andy
    • 13. Januar 2013 um 20:20

    Hi,
    um mal die Frage des TE zu beantworten, klar gibts was fertiges!
    Sich mit dieser Vorlage hinzustellen und nach einer ERKLÄRUNG zu fragen, ist schon frech....

  • Inputbox maximale anzahl Zeichen erweitern

    • Andy
    • 11. Januar 2013 um 06:42

    Hi,

    [autoit]

    GUICtrlCreateEdit ()

    [/autoit]
  • ogl4au3 2.0 Alpha - Zweite große OpenGL UDF mit vielen Beispielen

    • Andy
    • 10. Januar 2013 um 00:55

    Hi,

    Zitat

    Allgemein wird die Performance ja durch das Anzeigen der FPS gemindert

    naja, ein wenn ein simpler 2-zeiler, der 1x pro Sekunde aufgerufen wird, "Performance" mindert, dann ist es mit der Performance nicht weit her^^

    FPS Gerippe
    [autoit]

    AdlibRegister("_fps", 1000) ;FramesPerSecond
    $fps = 0

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

    while 1
    ;irgendein grafikkram
    $fps+=1
    WEnd

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

    Func _fps()
    tooltip ($fps & " FPS")
    $fps = 0
    EndFunc ;==>_fps

    [/autoit]

    das ist imho so ziemlich das mit AutoIt machbare Maximum.
    Interessant ist, dass die "FPS" mal locker im Bereich von 10-20% schwanken, abhängig davon, was sonst noch so auf dem Rechner los ist!

    FPS im Script
    [autoit]

    ; ogl4au3 Example: Rotating Textured Box
    ; Autor: minx

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

    ; Dies ist ein einfaches Beispiel, wie man Texturen in OpenGl nutzen kann. Das Fenstermanagement übernimmt wie immer
    ; glfw. Das Textur-Laden und Registrieren übernimt freundlicherweise komplett SOIL!
    ; Wir brauchen dann nur noch in den TEXTURE_2D Modus zu gehen, und jedem Eckpunkt noch einen Texturpunkt zuordnen.
    ; ^ Das erledigt meine Extension: extTexCube()
    ; Das wars schon!

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

    #include "..\Includes\opengl.au3"

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

    Local $iAlpha = 0.00 ; Rotationswinkel um den Würfel zu drehen.
    Dim $iW, $iH, $iChannels ; Container für die Werte, die von SOIL übergeben werden. Channel: RGB(A)

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

    glInit()
    gluInit()
    glfwInit()

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

    glfwOpenWindowHint($GLFW_WINDOW_NO_RESIZE, 1); Resize nicht möglich
    glfwOpenWindow(500, 500, 8, 8, 8, 0, 8, 0, $GLFW_WINDOW); Fenster öffnen
    glfwSetWindowTitle("Spining Cube"); Titel setzen
    glMatrixMode($GL_PROJECTION); Projektionseinstellungen
    gluPerspective(20, 500 / 500, 5, 15); Perspektive
    glViewport(0, 0, 500, 500); Viewport
    glMatrixMode($GL_MODELVIEW); Betrachtungsmodus
    $textureId = extTexture3a("..\Media\crate.jpg")
    ;glEnable($GL_CULL_FACE) ; Rückseite hinten belassen und nicht rendern. Sonst geht alles drunter & drüber!
    glEnable($GL_TEXTURE_2D) ; Texturmodus
    glEnable($GL_DEPTH_TEST)

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

    AdlibRegister("_fps", 1000) ;FramesPerSecond
    $fps = 0

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

    While glfwGetWindowParam($GLFW_OPENED) And Not glfwGetKey($GLFW_KEY_ESC)
    ;Grafikgedöns einschalten, DAS kostet Performance^^
    glClear($GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT)
    glLoadIdentity()
    glTranslatef(0, 0, -10); Einen Schritt zurück
    glRotatef(30, 1, 0, 0); Leicht von oben schauend
    glRotatef($iAlpha, 0, 1, 0.2); Waagerecht rotieren mit Winkel
    extTexCube(0, 0, 0, .25) ; Würfel zeichnen. Das Mappen übernimmt glext.
    extTexCube(.6, 0, 0, .25)
    extTexCube(.25, .5, .3, .25)
    extTexCube(.4, 0, .6, .25)
    $iAlpha += .4 ; Winkel erhöhen.
    glfwSwapBuffers() ; Buffer tauschen.
    $fps+=1
    WEnd

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

    ; Aufräumen:
    glDeleteTextures(1, $textureId)
    glfwTerminate()
    glTerminate()

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

    Func _fps()
    glfwSetWindowTitle("Spining Cube "&$fps & " FPS"); Titel setzen
    $fps = 0
    EndFunc ;==>_fps

    [/autoit]


    Mausschubser erhöhen die FPS, indem sie den Nager über den Schreibtisch bewegen....


    minx,
    viel Fleissarbeit, die API nach AutoIt zu portieren, aber was ich als AutoIt-ler schmerzlich vermisse, sind "Einfachst"-Befehle, die 80% des (in so gut wie jedem existierenden GL-Programm) anfallenden identischen Codes mittels simpler Anweisungen kapseln.
    Im Stile der "Extensions" ;)

  • VSync per WinAPI ?

    • Andy
    • 9. Januar 2013 um 18:49

    Hi,
    idR. kannst du das bei den Treibereinstellungen der Grafikkarte einstellen.
    Vertikale Synchronisierung oder VSYNC....mit den Einstellungen dort mal bissl rumspielen.
    Auch ist das Triple- dem Doublebuffering vorzuziehen!

    Wenn die VSYNC eingeschaltet ist, stellt die Grafikkarte nur Bilder synchron zur Bildwiederholfrequenz des Monitors ein (TFT 60Hz)
    Das führt dann in ungünstigen Fällen dazu, dass es bei den fixen 60Hz Bildwiederholfrequenz zu "Sprüngen" in der Bildrate (FPS) kommt, wenn die FPS in einem Bereich liegen, der ein Vielfaches bzw ein ganzzahliger Teiler der 60Hz ist.
    Denn die Grafikkarte synchronisiert dann die FPS mit der (Monitor-)Bildwiederholfrequenz. Das geht natürlich nur glatt auf, wenn die 60Hz ein Vielfaches der Bildrate ist.
    Bei 62FPS werden 60Hz dargestellt, bei 58fps nur noch 30fps dargestellt, also nur ganzzzahlige Teiler von 60.
    Wenn deine Graka also in der einen Sekunde 62 Bilder rendert, und in der anderen nur 58, dann kommt es zu Sprüngen in den dargestellten Frames, nämlich einmal 60 und das andere Mal 30. Und diesen "Unterschied" bzw "Verzögerung" zwischen 2 aufeinanderfolgenden Bildern (ca 33ms) sieht man dann als Ruckler.

    Als Abhilfe könnte man das VSYNC doch einfach ausschalten, das führt aber dann bei einer SEHR hohen Bildrate zum sog. "Tearing". Will heissen, die Grafikkarte ist so schnell, dass sie schon eine neues Bild liefert, obwohl der Monitor das "alte" noch nicht vollständig ausgegeben hat. Bei schnellen horizontalen Kameraschwenks merkt man das besonders deutlich an zerhackten bzw. zerissenen Bildern.

    Daher muss ich immer schmunzeln, wenn ich lese/höre (Gamerforen sind voll von diesen Sprüchen) dass div. Leute bei Ballerspielen den Unterschied zw. 70 und 120FPS "sehen". Coole Sache, denn der Monitor stellt ja nur maximal 60 Bilder pro Sekunde dar, völlig egal, ob die Graka 12345tausend FPS liefert^^
    Bei niedrigen FPS macht hingegen das "Tuning" schon viel aus, denn es ist ein Unterschied, ob der Monitor bei 19FPS nur 15FPS (60/4)darstellt(s.o.) oder bei 21 FPS eben dann 20FPS(60/3) darstellt.
    Bei aktivem VSYNC und 29FPS hat man gelitten, denn der Monitor stellt nur 60/3=20 FPS dar, mal eben 30% der Leistung der Graka in den Wind geblasen^^. Die Auflösung bissl reduzieren und das AA runterschrauben, und schwupps, "sieht" man plötzlich 30FPS.....

  • Musik-Visualizer mit optimiertem ASM

    • Andy
    • 8. Januar 2013 um 19:08

    Hi,
    seeeeehr nice, vor allem die Musik ist gut :thumbup:

    Ggf. könnte man noch bissl mehr "Bewegung" in die Animation bringen, so linear wirds halt schnell langweilig 8o
    Wie wärs damit, den einzelnen Frequenzen bestimmte Positionen innerhalb des Fensters zuzuordnen und dort dann jeweils "Bass", Mittel- und Hochtöner zu visualisieren...


    Zitat

    dass Andy nichts großes mehr zum Optimieren findet


    Wie schon in der SB gesagt, da pfusch ich nicht mehr dran rum^^, wenns ausreichend schnell läuft, ist es genug optimiert :thumbup:

    //EDIT....und er kanns nicht lassen mit seinem Gemecker :D
    habe festgestellt, dass der Fensterinhalt "flackert", ich schiebe das jetzt einfach mal auf die GDI- und die "Lock"-funktion (die ich, wie bekannt, sowieso nicht leiden kann....)

    Spoiler anzeigen
    [autoit]

    While sleep(10)
    _BASS_ChannelGetData($stream, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    _Visualize($ptr, $w, $h, $fftstruct)
    _WinAPI_BitBlt($hdc_gui, 0, 0, $w, $h, $hdc_bitmap, 0, 0, $srccopy) ;Bitmap in die GUI blitten
    WEnd

    [/autoit]

    so flackerts nicht mehr....

  • Sprachsteuerung

    • Andy
    • 7. Januar 2013 um 16:44

    Hi,
    individuelle Sprachsteuerung ist relativ einfach umzusetzen und auch die Erkennungsraten bewegen sich nach ausreichendem Training im ordentlichen Rahmen.
    Kommt ganz drauf an, was du damit machen willst, es gibt mittlerweile "Diktiergeräte" die annähernd fehlerfrei mitschreiben, was die (trainierte) Person spricht.

    Ich würde mal einzelne Wörter aufnehmen, ggf. 10x, und dann diese mit dem 11.Wort vergleichen (lass dir was einfallen). Hast du 3 Übereinstimmungen und 6x "wahrscheinlich" Treffer, dann passt das doch^^

    Zitat

    ...künstliche Intelligenzen...die eine Sprachsteuerung richtig ermöglichen. Ich meine Siri oder diese Sprachsteuerung vom Android sind ja ungebrauchbar ...

    Richtig, aber Siri und Android läuft auf irgendwelchen kleinen Kästchen, die zu 99,9% von Leuten bedient werden die dieses System nicht richtig nutzen (können).
    Frag mal Eukalyptus zum Thema Sound und Töne/Sprache, der kennt sich aus^^

  • GDI+ ... wie ich es liebe!

    • Andy
    • 6. Januar 2013 um 16:17

    Hi,
    wahrscheinlich würde dir gern jemand helfen, aber niemand hat Lust sich durch hunderte Zeilen Code zu wühlen.
    Testen kann man dein Script nämlich nicht, weil du diverse Dateien (Grafiken) nicht zur Verfügung stellst.
    Pack einfach alles, was zur Ausführung deines Scriptes nötig ist in eine *zip-Datei und lade diese hier hoch.
    Dann wird dir sicher auch geholfen ;)

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Andy
    • 6. Januar 2013 um 12:02
    Zitat von UEZ

    Apropos Win8: das Skript läuft nicht unter Win8 auf meiner physikalischen Kiste!

    hmm, die Verwendung von Windows-Standard-Funktionen funktioniert nicht bei Win8? Btw. was funktioniert nicht bzw. was ist der Fehler?
    Bestätigt mein bisheriges Vorgehen, immer nur jede 2. BS-Version zu verwenden.

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Andy
    • 5. Januar 2013 um 23:52
    Zitat von UEZ

    Alternativ kann man auch Aero abschalten:

    Aero, wasn das? :rofl:
    Wenn Software schon Sch*** ist, dann muss sie wenigstens gut aussehen!

    Oscar , bissl Debug-code gibts in fast allen meinen Scripten. Dann ist auch das Consolen-Fenster nicht immer so leer :D
    Würden das aber mehr Leute so machen (Debuggen meine ich), dann hätten wir sicher auch weniger Anfragen hier im Forum.
    Ctrl+Alt+z ist in diesem Fall in Scite dein Freund :D

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Andy
    • 5. Januar 2013 um 15:52

    Hi, teste mal bitte innerhalb der Schleife

    [autoit]

    $7 = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $e, "int", int($f + $h), "int", int($g + $i), "int", 128, "int", 128, "handle", $e, "int", int($f), "int", int($g), "dword", 0x00CC0020)

    [/autoit]


    auf Win7 wars bei mir auch extrem langsam, o.g. patch hat geholfen. Woran das liegt werde ich mal analysieren müssen,
    Ggf liegt ist der Desktop in einem bestimmten Bereich im Speicher und alles was dort "rein oder raus" geht, wird extra behandelt.

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Andy
    • 5. Januar 2013 um 15:38
    Zitat

    Andy: deine geänderte Version verhält sich aber genauso wie die von minx?!?

    Dein BS?
    Bei mir getestet auf XP32, ich schau gleich mal auf Win7-64

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Andy
    • 5. Januar 2013 um 14:08

    Hi,
    ich habe "nur" einen AMD Athlon X2 350, und habe >400bps. bps=blits pro sekunde 8o auf XP32.

    bei einer Auflösung von 1680x1050 und einer Kachelgrösse beim blitten von 128x128 kommt man auf ca . 4-5 FPS (ein Frame ist demnach "einmal komplett (theoretisch) gekachelt")

    Ohne die "Randomization" (ausschliesslich das blitten) habe ich 180-190 FPS.

    Zitat von minx

    Weder am Random (lol)...kanns liegen...

    hehe, selfowned. Profiling FTW :rock:
    Tja, wenn das alles so einfach wäre ;)

    Lässt man nämlich testweise mit vorher per Random ermittelten Koordinaten $f,$g,$h,$i das Script (nur das BitBlt() in der Schleife) mehrmals laufen, dann stellt man fest, dass die bps (blits pro sekunde) sich ab und zu im Bereich von ca. 100 bewegen, dh. FPS<<1 !? Wie kann das sein?

    Blitten einmal mit 500FPS und einmal mit 1FPS abhängig von den Koordinaten?

    Genau so ist es!
    Wird nämlich "auf sich selbst geblittet", dann erfolgt dieser Blit sehr langsam! Warum dieser Fall beim Programmieren der BitBlt()-Funktion nicht abgefangen wird, ist mir ehrlich gesagt ein Rätsel! Was aber stattdessen gemacht wird, ist ein noch größeres Rätsel! :thumbdown:

    Sortiert man nun diesen Fall im o.g. Script aus, dann ist es "schnell" 8o

    Spoiler anzeigen
    [autoit]

    #include <ScreenCapture.au3>
    Local $1 = Opt("GUIOnEventMode", 1)

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

    Global $f, $g, $h, $i
    $c = b(0)
    $a = @DesktopWidth
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a / 128 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $b = @DesktopHeight
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $b = ' & $b / 128 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $3 = _ScreenCapture_Capture("m.bmp", 0, 0, -1, -1, False)
    $d = GUICreate(0, $a, $b, 0, 0, 0x80000000)
    $4 = GUISetOnEvent(-3, "a")
    $5 = GUICtrlCreatePic("m.bmp", 0, 0, $a, $b)
    $e = b($d)

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

    $6 = GUISetState()
    $7 = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $e, "int", 0, "int", 0, "int", $a, "int", $b, "handle", $c, "int", 0, "int", 0, "dword", 0x00CC0020)

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

    $bps = 0

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

    AdlibRegister("fps", 1000)

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

    While 1

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

    While 1
    $f = ($a - 128) * Random(0, 1)
    $g = ($b - 128) * Random(0, 1)
    $h = 2 * Random(0, 1) - 1
    $i = 2 * Random(0, 1) - 1
    ;If Int($g + $i) = Int($g) and Int($f + $h) = Int($f) Then ExitLoop ;saulangsam
    If Int($g + $i)<> Int($g) Then ExitLoop;sauschnell
    WEnd

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

    $7 = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $e, "int", $f + $h, "int", $g + $i, "int", 128, "int", 128, "handle", $c, "int", $f, "int", $g, "dword", 0x00CC0020)
    $bps += 1
    WEnd

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

    Func fps()
    $fps = $bps / ($a * $b / 128 / 128)
    ToolTip($fps & " " & $bps)
    If $fps < 10 Then
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $f+h = ' & $f + $h & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $g+i = ' & $g + $i & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $f = ' & $f & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $g = ' & $g & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $h = ' & $h & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $i = ' & $i & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    ;~ $f = ($a - 128) * Random(0, 1)
    ;~ $g = ($b - 128) * Random(0, 1)
    ;~ $h = 2 * Random(0, 1) - 1
    ;~ $i = 2 * Random(0, 1) - 1
    ;~ Else
    ;~ $f = ($a - 128) * Random(0, 1)
    ;~ $g = ($b - 128) * Random(0, 1)
    ;~ $h = 2 * Random(0, 1) - 1
    ;~ $i = 2 * Random(0, 1) - 1
    EndIf

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

    $bps = 0
    EndFunc ;==>fps

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

    Local $8 = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", $d, "handle", $e)
    $9 = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", 0, "handle", $c)
    Func a()
    Exit
    EndFunc ;==>a
    Func b($j)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $j = ' & $j & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $k = DllCall("user32.dll", "handle", "GetDC", "hwnd", $j)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $k = ' & $k[0] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    Return $k[0]
    EndFunc ;==>b

    [/autoit]

    //EDIT
    Habe gerade gelesen, dass in einer VM das Script sehr schnell läuft. Das liegt mit Sicherheit an den optimierten Funktionen/Grafiktreibern. Ggf. ist es einem Programmierer der VM aufgefallen, und er hat den Fall "auf sich selbst blitten" abgefangen!

  • Sound selbst erzeugen / Medellbauservo ansteuern

    • Andy
    • 4. Januar 2013 um 20:47

    Hi,
    hab das schon gemacht, d.h. genau für diesen Anwendungsfall, Servo über LineOut ansteuern.
    Die Scripte sind irgendwo vergraben, aber HIER ist der Vorläufer bzw. die Methode, um die Frequnzen, Amplituden usw. per WAV-Datei bzw. direkt an LineOut auszugeben.

    HIER der Vorvorläufer^^ und Erklärungen

  • "Send" ohne HotKey

    • Andy
    • 4. Januar 2013 um 20:34

    Hi,
    im AutoIt-Verzeichnis befindet sich die Datei Au3Info.exe.
    Starten und den Reiter Summary auswählen.
    Mit linker Maustaste auf das Fadenkreuz unterhalb der "Finder Tools" klicken und Maustaste gedrückt lassen.
    Das Fadenkreuz auf Fensterrahmen, Controls usw ziehen und beim Control, von dem man die Infos benötigt, "fallenlassen".
    Die angegebenen Infos können mit allen AutoIt-Funktionen, welche mit den Controls arbeiten, verwendet werden.

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™