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

Beiträge von BugFix

  • "_isAnyKeyPressed()"

    • BugFix
    • 20. Dezember 2009 um 22:51
    Zitat von Schnuffel

    Leider grenzt das aufgrund der angewandten Methodik sehr an einen Keylogger, da man jede Taste dabei aufzeichnen kann.


    Muß ich mal klar verneinen.
    Nur aufgrund der Tatsache, dass man mit Autos auch Menschen totfahren kann, sind es keine Mordinstrumente.
    Das hier verwendete (und von mir vorab angesprochene) Bsp. aus der Hilfe bietet keinerlei Anleitung zu illegalen Handlungen. Und wir sollten uns nicht Programmiermöglichkeiten selbst entziehen, nur weil irgendwer das zu anderen Zwecken nutzen könnte. Selbstkasteiung zum Schutze Anderer ? - Nein Danke!
    Wenn jemand wirklich in Richtung Keylogger aktiv werden will, wird er sich spätestens, wenn er keine Hilfe bekommt, einen der zu Hunderten im Netz verügbaren herunterladen.

  • "_isAnyKeyPressed()"

    • BugFix
    • 20. Dezember 2009 um 22:28

    Das geht mit einem Keyboard-Hook. Einfach zusätzlich zu jedem Hook deinen Beep ausführen.

  • Windows Message Codes bestimmen

    • BugFix
    • 20. Dezember 2009 um 22:20
    Zitat von Schlikk

    Wie bestimme ich deren Wert?

    Zitat von Schlikk

    Const $HCBT_CREATEWND = 3 => Wie kommt man auf die 3?


    Diese Werte sind vordefiniert, hier habe ich eine gute Auflistung gebräuchlicher Konstanten gefunden.

    Grundsätzlich ist es egal, ob du Hex- oder Dezimalzahlen verwendest.

  • Neuer Stil

    • BugFix
    • 20. Dezember 2009 um 22:10

    Mir gefällt der neue Stil. Das orange hatte ich mir schon satt gesehen. :P

  • Abkürzungen in SciTE verwalten

    • BugFix
    • 20. Dezember 2009 um 21:45

    Problem der Wiederherstellung eigener Abbrevs ist gelöst. s. Post #1

  • Funktion aus eigener DLL (Freebasic) lässt sich nicht aufrufen

    • BugFix
    • 20. Dezember 2009 um 13:01

    Versuch doch mal beim DllCall den Rückgabetyp deiner Funktion mit 'int' zu belegen (auch wenn du String definiert hast).
    Der AutoIt-DllCall gibt den Returnwert ja nicht direkt zurück sondern über ein Array mit 0 oder dem Returnwert (Fehler od. Erfolg).

  • Com Objects - Neuling - Tutorial

    • BugFix
    • 20. Dezember 2009 um 10:47

    Wenn du mit Objekten arbeiten möchtest, mußt du dich mit den Befehlen (Methoden, Eigenschaften etc.) der jeweiligen Objekte vertraut machen. Darauf kann natürlich in der AutoIt-Hilfe nicht eingegangen werden, da dieses für das entsprechende Objekt spezifisch ist.
    Die AutoIt-Objekt-Befehle ermöglichen dir (bei den Objekten, die es zulassen ;) ) eine Referenz auf dieses Objekt zu erstellen um mit ihm zu arbeiten.

    Öffne z.B. mal die Includes: Word.au3 oder Excel.au3
    Dort kannst du dir anschauen, wie mit den Objekten gearbeitet wird.

  • Mega Array

    • BugFix
    • 16. Dezember 2009 um 20:32

    Der Fehler kommt nach der ersten Gruppe. Schmeiß mal die 'Fast'-Leerzeilen raus, vielleicht sind die zusätzlichen Zeilen(umbrüche) in der Deklaration hinderlich.

  • Virtuelles Laufwerk

    • BugFix
    • 16. Dezember 2009 um 20:13
    Zitat von Der_Doc

    PS: Clone-CD ist übrigends ein in Deutschland verbotenes Brennprogramm.

    Das ist so nicht korrekt. Clone-CD in seiner ursprünglichen Fassung darf (auf dem deutschen Markt) nicht mehr vertrieben werden. Die Firma hat aber eine weichgespülte Version auf den Markt gebracht (ebenso bei Clone-DVD), die den rechtlichen Bestimmungen in DE gerecht wird. Was aber kaum jemanden hindern wird, so er denn will, das Original von den Seychellen zu kaufen. :D

  • Mega Array

    • BugFix
    • 16. Dezember 2009 um 19:49

    Ich hab es jetzt mal in eine verständliche Darstellung gepackt:

    Spoiler anzeigen
    [autoit]

    Global $mChars[7][4][5][5] = _
    [ _
    [[[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 2, 1, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 2, 1, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 2, 1, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 2, 1, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 1, 2, 1, 1],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 1, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[1, 1, 2, 1, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 1, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 0, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 1, 2, 1, 0],[0, 1, 0, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 1, 1, 0, 0],[0, 0, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 1, 0],[0, 1, 2, 1, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 0, 0],[0, 1, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 1, 0, 0, 0],[0, 1, 2, 1, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 1, 0],[0, 0, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 1, 2, 1, 0],[0, 0, 0, 1, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 0, 1, 0],[0, 0, 2, 1, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 1, 2, 0, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 1, 2, 0, 0],[0, 1, 0, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 1, 1, 0, 0],[0, 0, 2, 1, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 1, 0],[0, 0, 0, 1, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 2, 1, 0],[0, 1, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 1, 0, 0, 0],[0, 1, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 1, 0],[0, 1, 2, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]]], _
    _
    [[[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 0, 2, 1, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 1, 2, 1, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 1, 2, 0, 0],[0, 0, 1, 0, 0],[0, 0, 0, 0, 0]], _
    [[0, 0, 0, 0, 0],[0, 0, 1, 0, 0],[0, 1, 2, 1, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]]] _
    ]

    [/autoit]


    Da erkennst du deutlich: 7 Gruppen mit 4 Reihen je 5 -mal 5 Einträge ;)

  • Mega Array

    • BugFix
    • 16. Dezember 2009 um 19:20

    Ab 3 Dimensionen ist diese Art der Deklaration von Arrays mit gleichzeitiger Wertzuweisung sehr crazy und besser zu vermeiden.
    Hier kommst du mit Zuweisung gruppenweise je Dimension in einer Schleife besser weg.

  • Wie erstelle ich eine GUI ?

    • BugFix
    • 16. Dezember 2009 um 18:51

    Lucas, hast du nicht gesehen:

    Zitat

    Donnerstag, 27. November 2008, 20:23

    Das nennt man Leichenschändung. :rofl:

  • Farbraum Umrechner

    • BugFix
    • 15. Dezember 2009 um 17:40

    Hi,
    mir sind gerade die Umrechnungsrichtlinien für Farbräume in die Hände gefallen.
    Falls das mal jemand braucht, hab ich hier mal einige Umrechnungs-Funktionen erstellt.

    Folgende Umrechnungen sind möglich:
    _RGB_to_CMY
    _CMY_to_RGB

    _RGB_to_XYZ
    _XYZ_to_RGB

    _RGB_to_HunterLab
    _HunterLab_to_RGB

    _RGB_to_CIELab
    _CIELab_to_RGB

    _RGB_to_HSV
    _HSV_to_RGB

    _XYZ_to_HunterLab
    _HunterLab_to_XYZ

    _XYZ_to_CIELab
    _CIELab_to_XYZ

    Spoiler anzeigen
    [autoit]


    ;=======================================================================
    ; einzig zu erklärender Parameter für alle Funktionen:
    ;
    ; $retType 0-Standard gibt Werte als Trennzeichnbasierter String zurück
    ; Trennzeichen ist das mit Opt('GUIDataSeparatorChar')
    ; definierte Zeichen (Standard '|')
    ; 1 gibt die Werte in einem Array zurück
    ;=======================================================================
    #include-once
    Func _RGB_to_CMY($iR, $iG, $iB, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iC = Round(1 - ($iR / 255), 5)
    Local $iM = Round(1 - ($iG / 255), 5)
    Local $iY = Round(1 - ($iB / 255), 5)
    If $retType Then
    Local $Out[3] = [$iC,$iM,$iY]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iC & $delim & $iM & $delim & $iY
    EndIf
    Return $Out
    EndFunc ;==>_RGB_to_CMY

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

    Func _CMY_to_RGB($iC, $iM, $iY, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iR = Int((1 - $iC) * 255)
    Local $iG = Int((1 - $iM) * 255)
    Local $iB = Int((1 - $iY) * 255)
    If $retType Then
    Local $Out[3] = [$iR,$iG,$iB]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iR & $delim & $iG & $delim & $iB
    EndIf
    Return $Out
    EndFunc ;==>_CMY_to_RGB

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

    Func _RGB_to_XYZ($iR, $iG, $iB, $retType=0); 0=String, 1=Array
    If $iR < 0 Or $iR > 255 Or $iG < 0 Or $iG > 255 Or $iB < 0 Or $iB > 255 Then Return SetError(1,0,0)
    If $retType <> 0 Then $retType = 1
    Local $iX, $iY, $iZ
    $iR /= 255
    $iG /= 255
    $iB /= 255
    If $iR > 0.04045 Then
    $iR = (($iR + 0.055 ) / 1.055 ) ^ 2.4
    Else
    $iR /= 12.92
    EndIf
    If $iG > 0.04045 Then
    $iG = (($iG + 0.055 ) / 1.055 ) ^ 2.4
    Else
    $iG /= 12.92
    EndIf
    If $iB > 0.04045 Then
    $iB = (($iB + 0.055 ) / 1.055 ) ^ 2.4
    Else
    $iB /= 12.92
    EndIf
    $iR *= 100
    $iG *= 100
    $iB *= 100
    ; Observer = 2°, Illuminant = D65
    $iX = Round($iR * 0.4124 + $iG * 0.3576 + $iB * 0.1805, 3)
    $iY = Round($iR * 0.2126 + $iG * 0.7152 + $iB * 0.0722, 3)
    $iZ = Round($iR * 0.0193 + $iG * 0.1192 + $iB * 0.9505, 3)
    If $retType Then
    Local $Out[3] = [$iX,$iY,$iZ]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iX & $delim & $iY & $delim & $iZ
    EndIf
    Return $Out
    EndFunc ;==>_RGB_to_XYZ

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

    Func _XYZ_to_RGB($iX, $iY, $iZ, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iR, $iG, $iB
    $iX /= 100
    $iY /= 100
    $iZ /= 100
    ; Observer = 2°, Illuminant = D65
    $iR = ($iX * 3.2406) + ($iY * -1.5372) + ($iZ * -0.4986)
    $iG = ($iX * -0.9689) + ($iY * 1.8758) + ($iZ * 0.0415)
    $iB = ($iX * 0.0557) + ($iY * -0.2040) + ($iZ * 1.0570)
    If $iR > 0.0031308 Then
    $iR = 1.055 * ($iR ^ (1/2.4)) - 0.055
    Else
    $iR *= 12.92
    EndIf
    If $iG > 0.0031308 Then
    $iG = 1.055 * ($iG ^ (1/2.4)) - 0.055
    Else
    $iG *= 12.92
    EndIf
    If $iB > 0.0031308 Then
    $iB = 1.055 * ($iB ^ (1/2.4)) - 0.055
    Else
    $iB *= 12.92
    EndIf
    $iR = Int($iR*255)
    $iG = Int($iG*255)
    $iB = Int($iB*255)
    If $retType Then
    Local $Out[3] = [$iR,$iG,$iB]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iR & $delim & $iG & $delim & $iB
    EndIf
    Return $Out
    EndFunc ;==>_XYZ_to_RGB

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

    Func _RGB_to_HunterLab($iR, $iG, $iB, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $aXYZ = _RGB_to_XYZ($iR, $iG, $iB, 1)
    Local $Out = _XYZ_to_HunterLab($aXYZ[0], $aXYZ[1], $aXYZ[2])
    If $retType Then
    Return StringSplit($Out, Opt('GUIDataSeparatorChar'), 2)
    Else
    Return $Out
    EndIf
    EndFunc ;==>_RGB_to_HunterLab

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

    Func _HunterLab_to_RGB($H_L, $H_a, $H_b, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $aXYZ = _HunterLab_to_XYZ($H_L, $H_a, $H_b, 1)
    Local $Out = _XYZ_to_RGB($aXYZ[0], $aXYZ[1], $aXYZ[2])
    If $retType Then
    Return StringSplit($Out, Opt('GUIDataSeparatorChar'), 2)
    Else
    Return $Out
    EndIf
    EndFunc ;==>_HunterLab_to_RGB

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

    Func _XYZ_to_HunterLab($iX, $iY, $iZ, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $H_L = Round(10 * Sqrt($iY), 3)
    Local $H_a = Round(17.5 * (((1.02 * $iX) - $iY) / Sqrt($iY)), 3)
    Local $H_b = Round(7 * (($iY - (0.847 * $iZ)) / Sqrt($iY)), 3)
    If $retType Then
    Local $Out[3] = [$H_L,$H_a,$H_b]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $H_L & $delim & $H_a & $delim & $H_b
    EndIf
    Return $Out
    EndFunc ;==>_XYZ_to_HunterLab

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

    Func _HunterLab_to_XYZ($H_L, $H_a, $H_b, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iY = $H_L / 10
    Local $iX = $H_a / 17.5 * $H_L / 10
    Local $iZ = $H_b / 7 * $H_L / 10
    $iY = Round($iY ^ 2, 3)
    $iX = Round(($iX + $iY) / 1.02, 3)
    $iZ = Round(-1 * ($iZ - ($iY)) / 0.847, 3)
    If $retType Then
    Local $Out[3] = [$iX,$iY,$iZ]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iX & $delim & $iY & $delim & $iZ
    EndIf
    Return $Out
    EndFunc ;==>_HunterLab_to_XYZ

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

    Func _XYZ_to_CIELab($iX, $iY, $iZ, $retType=0)
    If $retType <> 0 Then $retType = 1
    ; Observer= 2°, Illuminant= D65
    $iX /= 95.047
    $iY /= 100
    $iZ /= 108.883
    If ($iX > 0.008856) Then
    $iX = $iX ^ (1/3)
    Else
    $iX = (7.787 * $iX) + (16 / 116)
    EndIf
    If ($iY > 0.008856) Then
    $iY = $iY ^ (1/3)
    Else
    $iY = (7.787 * $iY) + (16 / 116)
    EndIf
    If ($iZ > 0.008856) Then
    $iZ = $iZ ^ (1/3)
    Else
    $iZ = (7.787 * $iZ) + (16 / 116)
    EndIf
    Local $CIE_L = Round((116 * $iY) - 16, 3)
    Local $CIE_a = Round(500 * ($iX - $iY), 3)
    Local $CIE_b = Round(200 * ($iY - $iZ), 3)
    If $retType Then
    Local $Out[3] = [$CIE_L,$CIE_a,$CIE_b]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $CIE_L & $delim & $CIE_a & $delim & $CIE_b
    EndIf
    Return $Out
    EndFunc ;==>_XYZ_to_CIELab

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

    Func _CIELab_to_XYZ($CIE_L, $CIE_a, $CIE_b, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iY = ($CIE_L + 16) / 116
    Local $iX = $CIE_a / 500 + $iY
    Local $iZ = $iY - $CIE_b / 200
    If ($iX^3 > 0.008856) Then
    $iX = $iX ^ 3
    Else
    $iX = ($iX - 16 / 116) / 7.787
    EndIf
    If ($iY^3 > 0.008856) Then
    $iY = $iY ^ 3
    Else
    $iY = ($iY - 16 / 116) / 7.787
    EndIf
    If ($iZ^3 > 0.008856) Then
    $iZ = $iZ ^ 3
    Else
    $iZ = ($iZ - 16 / 116) / 7.787
    EndIf
    ; Observer = 2°, Illuminant = D65
    $iX = Round($iX * 95.047, 3)
    $iY = Round($iY * 100.000, 3)
    $iZ = Round($iZ * 108.883, 3)
    If $retType Then
    Local $Out[3] = [$iX,$iY,$iZ]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iX & $delim & $iY & $delim & $iZ
    EndIf
    Return $Out
    EndFunc ;==>_CIELab_to_XYZ

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

    Func _RGB_to_CIELab($iR, $iG, $iB, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $aXYZ = _RGB_to_XYZ($iR, $iG, $iB, 1)
    Local $Out = _XYZ_to_CIELab($aXYZ[0], $aXYZ[1], $aXYZ[2])
    If $retType Then
    Return StringSplit($Out, Opt('GUIDataSeparatorChar'), 2)
    Else
    Return $Out
    EndIf
    EndFunc ;==>_RGB_to_CIELab

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

    Func _CIELab_to_RGB($CIE_L, $CIE_a, $CIE_b, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $aXYZ = _CIELab_to_XYZ($CIE_L, $CIE_a, $CIE_b, 1)
    Local $Out = _XYZ_to_RGB($aXYZ[0], $aXYZ[1], $aXYZ[2])
    If $retType Then
    Return StringSplit($Out, Opt('GUIDataSeparatorChar'), 2)
    Else
    Return $Out
    EndIf
    EndFunc ;==>_CIELab_to_RGB

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

    Func _RGB_to_HSV($iR, $iG, $iB, $retType=0)
    If $retType <> 0 Then $retType = 1
    $iR /= 255
    $iG /= 255
    $iB /= 255
    Local $Min = $iR
    If $iG < $Min Then $Min = $iG
    If $iB < $Min Then $Min = $iB
    Local $Max = $iR
    If $iG > $Max Then $Max = $iG
    If $iB > $Max Then $Max = $iB
    Local $Delta = $Max - $Min, $iH, $iS, $iV = $Max
    If $Delta = 0 Then
    $iH = 0
    $iS = 0
    Else
    $iS = $Delta / $Max
    Local $del_R = ((($Max - $iR ) / 6) + ($Max / 2 )) / $Max
    Local $del_G = ((($Max - $iG ) / 6) + ($Max / 2 )) / $Max
    Local $del_B = ((($Max - $iB ) / 6) + ($Max / 2 )) / $Max
    If $iR = $Max Then
    $iH = $del_B - $del_G
    ElseIf $iG = $Max Then
    $iH = 1 / 3 + $del_R - $del_B
    Elseif $iB = $Max Then
    $iH = 2 / 3 + $del_G - $del_R
    EndIf
    If $iH < 0 Then $iH += 1
    If $iH > 1 Then $iH -= 1
    EndIf
    $iH = Round($iH, 4)
    $iS = Round($iS, 4)
    $iV = Round($iV, 4)
    If $retType Then
    Local $Out[3] = [$iH,$iS,$iV]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iH & $delim & $iS & $delim & $iV
    EndIf
    Return $Out
    EndFunc ;==>_RGB_to_HSV

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

    Func _HSV_to_RGB($iH, $iS, $iV, $retType=0)
    If $retType <> 0 Then $retType = 1
    Local $iR, $iG, $iB
    If $iS = 0 Then
    $iR = Int($iV * 255)
    $iG = Int($iV * 255)
    $iB = Int($iV * 255)
    Else
    $iH *= 6
    If $iH = 6 Then $iH = 0
    Local $i = Int($iH)
    Local $1 = $iV * (1 - $iS)
    Local $2 = $iV * (1 - $iS * ($iH - $i))
    Local $3 = $iV * (1 - $iS * (1 - ($iH - $i)))
    Switch $i
    Case 0
    $iR = $iV
    $iG = $3
    $iB = $1
    Case 1
    $iR = $2
    $iG = $iV
    $iB = $1
    Case 2
    $iR = $1
    $iG = $iV
    $iB = $3
    Case 3
    $iR = $1
    $iG = $2
    $iB = $iV
    Case 4
    $iR = $3
    $iG = $1
    $iB = $iV
    Case Else
    $iR = $iV
    $iG = $1
    $iB = $2
    EndSwitch
    $iR = Int($iR * 255)
    $iG = Int($iG * 255)
    $iB = Int($iB * 255)
    EndIf
    If $retType Then
    Local $Out[3] = [$iR,$iG,$iB]
    Else
    Local $delim = Opt('GUIDataSeparatorChar')
    Local $Out = $iR & $delim & $iG & $delim & $iB
    EndIf
    Return $Out
    EndFunc ;==>_HSV_to_RGB

    [/autoit]

    Dateien

    ColorConversion.au3 9,62 kB – 527 Downloads
  • Wieso ist eine Struct größer als ihre definitierte Größe?

    • BugFix
    • 15. Dezember 2009 um 10:34

    Autsch :S
    da haben wir diesmal auch vergessen die Hilfe zu lesen. :D

    Zitat

    By default, a structure alignment of 8 is used (to be consistent with general Microsoft compilers and APIs).

  • Color Tool V0.1 (Programm zur Konvertierung von Gradienten GGR->TMG)

    • BugFix
    • 15. Dezember 2009 um 10:15

    :thumbup:
    Sehr schönes Projekt. Damit lassen sich so einige Lücken bei GDI+ schließen.
    Aber auch mir fehlt da die Zeit es zu komplettieren/weiterzuentwickeln.

    Doch haben wir hier einige Grafik-Besessene im Forum, die sich sicher voller Inbrunst darauf stürzen werden. (will ich mal hoffen :D)

  • Buttons im GUI

    • BugFix
    • 14. Dezember 2009 um 23:33

    Sowas? (Bitte warten, Hilfe wird gestartet)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $stat = 0
    $gui1 = GUICreate('GUI')
    WinSetOnTop($gui1, '', 1)
    $btn1 = GUICtrlCreateButton('Starte Help', 10, 20, 100, 20)
    GUICtrlSetBkColor($btn1, 0x00FF00)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg()
    $pid = ProcessExists('AutoIt3Help.exe')
    If $stat <> $pid Then $stat = _ToggleBtnCol($btn1, $pid)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    If $stat Then
    ProcessClose($stat)
    Else
    ShellExecute(StringReplace(@AutoItExe, 'autoit3.exe', 'AutoIt3Help.exe'))
    EndIf
    EndSwitch
    WEnd

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

    Func _ToggleBtnCol($ID, $PID)
    If $PID Then
    GUICtrlSetBkColor($ID, 0xFA8072)
    ControlSetText($gui1, '', $ID, 'Beende Help')
    Else
    GUICtrlSetBkColor($ID, 0x00FF00)
    ControlSetText($gui1, '', $ID, 'Starte Help')
    EndIf
    Return $PID
    EndFunc

    [/autoit]
  • Wieso ist eine Struct größer als ihre definitierte Größe?

    • BugFix
    • 14. Dezember 2009 um 22:12

    Hab das jetzt mal mit verschiedenen Datentypen getestet und komme leider auch zu dem niederschmetternden Ergebnis:
    Strukturgröße = Speicherbedarf größter Datentyp * Anzahl aller Strukturelemente inkl. Unterelemente

    Das haut natürlich ganz schön rein, wenn man ein 'double' mit 8 Byte dabei hat und sonst nur 'byte'.
    Warum das so ist - keinen Schimmer, aber es ist leider so.

  • CPU Last steigt auf 100% obwohl das GUI noch nicht arbeiten muss.

    • BugFix
    • 14. Dezember 2009 um 21:49

    Wenn Daten gesammelt undanschließend in eine Datei geschrieben werden sollen empfiehlt sich z.B. folgendes:

    [autoit]

    $sToWrite = ''
    ; Hinzufügen von Inhalten mit
    $sToWrite &= 'Inhalt_Zeile1' & @CRLF

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

    ; zum Schluß in Datei schreiben
    $fh = FileOpen($Pfad)
    FileWrite($fh, $sToWrite)
    FileClose($fh)

    [/autoit]
  • CPU Last steigt auf 100% obwohl das GUI noch nicht arbeiten muss.

    • BugFix
    • 14. Dezember 2009 um 21:33

    Maximum:
    - 64 Dimensionen
    - 16 777 216 Einträge gesamt

  • CPU Last steigt auf 100% obwohl das GUI noch nicht arbeiten muss.

    • BugFix
    • 14. Dezember 2009 um 21:08
    Zitat von AspirinJunkie

    Er hat kein GuiGetMsg() in einer Funktion.


    Stimmt, leider unformatiert, da hab ich das EndFunc übersehen. :D

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™