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

Beiträge von Mars

  • Text Field Value Wird Nicht Gesetzt!!!

    • Mars
    • 19. März 2013 um 21:04

    Das ist ne lange Geschichte.
    Die ganzen Buben und Mädels hier haben sich wie Bestien auf ihn gestürzt.
    Und je mehr das der Fall war, desto weniger wusste er was er scheiben soll.
    Daher sind einige Textstellen höchst widersprüchlich.
    Was die Realität ist weiß nur BugFix, denn der hat die Seite vermutlich inspizieren dürfen um herauszufinden was vor sich geht.

  • Text Field Value Wird Nicht Gesetzt!!!

    • Mars
    • 19. März 2013 um 16:28
    Zitat

    <input value="Create Accounts" class="blueB" type="button" onclick="createit();">

    Was ist der Sinn des Skripts ?
    Welche Webseite gestattet es automatisch Accounts zu erstellen ?

  • Umrechnung von Farbräumen

    • Mars
    • 18. März 2013 um 20:15

    Keine weiteren Fragen euer Ehren. 8)
    [gelöst]

  • Umrechnung von Farbräumen

    • Mars
    • 18. März 2013 um 13:12

    Moin,

    Kurz und bündig: Ich möchte RGB Farben in DIN99 Farben umrechnen.
    Das Problem ist dabei der Schritt über die LAB Farben.
    Die Berechnungen liefern bei mir falsche Ergebnisse.
    (Also habe ich irgendwo etwas misinterpretiert, oder mich vertippt)
    Falls jemand schonmal Funktionen für diese Umrechnungen umgesetzt hat wäre ich ihm sehr verbunden wenn er sie zur Verfügung stellen würde.

    http://www.subcolors.de/content/public/colorsystems/uni.html
    http://de.wikipedia.org/wiki/Lab-Farbraum

    Spoiler anzeigen
    [autoit]

    #include <Math.au3>

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

    Global $a[3]

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

    $a[0] = 0
    $a[1] = 0
    $a[2] = 1

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

    ;~ _Norm($a)

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

    _Print($a, 'RGB')

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

    Global $b = _RGBtoXYZ($a[0], $a[1], $a[2])

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

    _Print($b, 'XYZ')

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

    Global $c = _RGBtoHSV($a[0], $a[1], $a[2])

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

    _Print($c, 'HSV', '°%%')

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

    Global $d = _XYZtoLAB($b[0], $b[1], $b[2])

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

    ConsoleWrite('Für Blau (R=0, G=0, B=1) muss L=?, A=0, B=-90 herauskommen' & @CRLF)

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

    _Print($d, 'LAB')

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

    Func _XYZtoLAB($X, $Y, $Z)
    Local $Sum = Abs($X) + Abs($Y) + Abs($Z), $Xn = $X/$Sum, $Yn = $Y/$Sum, $Zn = $Z/$Sum
    Local $L = 116 *(($Y/$Yn)^(1/3))-16
    Local $A = 500 * (($X/$Xn)^(1/3) - ($Y/$Yn)^(1/3))
    Local $B = 200 * (($Y/$Yn)^(1/3)-($Z/$Zn)^(1/3))
    Local $aRet[3] = [$L, $A, $B]
    Return $aRet
    EndFunc

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

    Func _RGBtoHSV($R, $G, $B)
    Local $Min = _Min(_Min($R, $G), $B), $Max = _Max(_Max($R, $G), $B)
    Local $H = 0
    Switch $Max
    Case $Min
    Case $R
    $H = 60 * (($G-$B)/($Max-$Min))
    Case $G
    $H = 60 * (2+($B-$R)/($Max-$Min))
    Case $B
    $H = 60 * (4+($R-$G)/($Max-$Min))
    EndSwitch
    If $H < 0 Then $H += 360
    Local $S = 0
    If Not $Max = 0 Then $S = ($Max-$Min)/$Max
    Local $V = $Max
    Local $aRet[3] = [$H, $S * 100, $V * 100]
    Return $aRet
    EndFunc

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

    Func _RGBtoXYZ($R, $G, $B)
    Local $X = 0.4124564 * $R + 0.3575761 * $G + 0.1804375 * $B
    Local $Y = 0.2126729 * $R + 0.7151522 * $G + 0.0721750 * $B
    Local $Z = 0.0193339 * $R + 0.1191920 * $G + 0.9503041 * $B
    Local $aRet[3] = [$X, $Y, $Z]
    Return $aRet
    EndFunc

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

    Func _Norm(ByRef $a)
    Local $b = 255
    $a[0] /= $b
    $a[1] /= $b
    $a[2] /= $b
    EndFunc

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

    Func _Print($a, $s, $s2 = '')
    ConsoleWrite('+> ' & $s & ':' & @CRLF)
    For $i = 0 To 2 Step 1
    ConsoleWrite(StringMid($s, $i+1, 1) & ': ' & $a[$i] & ' ' & StringMid($s2, $i+1, 1) & @CRLF)
    Next
    ConsoleWrite(@CRLF)
    EndFunc

    [/autoit]


    .
    .
    lg
    Mars

  • Projekt als .exe komprimieren

    • Mars
    • 18. März 2013 um 12:18

    Im AutoIt Verzeichnis ist ein Skript "SampleControls.au3".
    Da kann man sich die ganzen möglichen Controls mal ansehen.
    C:\Program Files (x86)\AutoIt3\Examples\GUI

    Der Inhalt des Examples Ordners ist allgemein sehr zu empfehlen.

  • Projekt als .exe komprimieren

    • Mars
    • 18. März 2013 um 12:13

    Wenn du AutoIt installiert hast kannst du per Rechtsklick auf die .au3 Datei "Compile Script" (oder eine äquivalente Meldung auf Deutsch) auswählen.
    Dann wird automatisch eine .exe im selben Verzeichnis erzeugt die dein Programm beinhaltet.

  • Tablet-PC-Fragen

    • Mars
    • 16. März 2013 um 10:18

    Ein Tablet/Laptop/Handy in der Uni verleitet immer dazu weniger auszupassen als einem lieb ist.
    Was willst du denn studieren ?

  • #Tidy_Parameters [ gelöst ] | WM_KEYDOWN [ gelöst ]

    • Mars
    • 16. März 2013 um 00:09

    Werden bei GetKeyboardstate nicht Alle Tasten überprüft statt nur einer (wie bei AsyncKeyState) ?
    Wenn ja wäre das ein hoher Mehraufwand. (außer die Dll regelt das intern effektiver als 256 Async calls)

  • #Tidy_Parameters [ gelöst ] | WM_KEYDOWN [ gelöst ]

    • Mars
    • 15. März 2013 um 23:47

    Das WM_CHAR Problem hatte ich auch schon.
    Also Quasi eine Message ausspucken sobald eine Taste gedrückt wird.
    Was eventuell geht ist ein Accel mit Event. Das müsste doch aufs gleiche rauskommen ?

    Skript
    [autoit]


    Opt('GUIOnEventMode', 1)

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

    Global $t = TimerInit()
    Global $hGUI = GUICreate('Test', 500, 500)
    GUISetState(@SW_SHOW, $hGUI)

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

    Global $a[2][2]
    $a[0][0] = '{ENTER}'
    $a[0][1] = GUICtrlCreateDummy()
    $a[1][0] = 'u'
    $a[1][1] = GUICtrlCreateDummy()

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

    GUISetAccelerators($a, $hGUI)

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

    GUICtrlSetOnEvent($a[0][1], 'Event')
    GUICtrlSetOnEvent($a[1][1], 'Event')
    GUISetOnEvent(-3, 'Event', $hGUI)

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

    While Sleep(100)
    WEnd

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

    Func Event()
    Switch @GUI_CtrlId
    Case -3
    Exit
    Case Else
    ConsoleWrite('['&Round(TimerDiff($t)/1000,1)&'] ' & 'Gedrückt: ' & @GUI_CtrlId & @CRLF)
    EndSwitch
    EndFunc

    [/autoit]

    Edit: Das unterscheidet zwischen Groß- und kleinschreibung. Einfach mal ein U aus dem u machen und ausprobieren.
    .
    .
    lg

  • Tablet-PC-Fragen

    • Mars
    • 15. März 2013 um 12:57

    Idea Pad 13 - 1.500€
    Sieht verdammt cool aus und hat auch ordentliche Spezifikationen.

  • @scriptdir schlägt nach Wechsel des Laufwerksbuchstabens (in laufender exe) fehl

    • Mars
    • 14. März 2013 um 11:18
    Zitat

    Jetzt kommt der Haken (für meine bescheidenen Kenntnisse): Durch die Installation eines USB-Managers ändert sich - während des laufenden Scripts - der Laufwerksbuchstabe des USB-Sticks (in meinem Fall von "L" auf "N")

    Es handelt sich um eine Installation. Es ist unwahrscheinlich, dass alle Rechner denen dieser Stick verabreicht wird so reagieren wie sein eigener.

  • @scriptdir schlägt nach Wechsel des Laufwerksbuchstabens (in laufender exe) fehl

    • Mars
    • 13. März 2013 um 23:11

    Ich versuch mal was.
    Hab ja einen USB Stick. (leider nur einen, sonst könnte ich den einen dran und den anderen ab machen um die Situation zu simulieren)

    Edit:
    Das müsste so klappen.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>

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

    Local $aDrivesVorher = DriveGetDrive('ALL')

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

    ; Installation
    ; Entfällt hier, daher wird einfach das
    ; erste Laufwerk im Array umbenannt
    $aDrivesVorher[1] = 'x:' ; Aus dem ersten wird ein x
    ; Das entspricht der Umbenennung eines Laufwerks
    ; Bei der Installation

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

    Local $aDrivesNachher = DriveGetDrive('ALL')

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

    _ArrayDisplay($aDrivesVorher)
    _ArrayDisplay($aDrivesNachher)

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

    _ArrayUnique2($aDrivesVorher, $aDrivesNachher)

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

    ConsoleWrite('! ' & $aDrivesVorher[0] & ' -> ' & $aDrivesNachher[0] & @CRLF)

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

    _ArrayDisplay($aDrivesVorher)
    _ArrayDisplay($aDrivesNachher)

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

    Func _ArrayUnique2(ByRef $a1, ByRef $a2)
    Local $b1 = $a1 ; Kopieren
    For $i = UBound($a1) - 1 To 0 Step -1
    If _StringInArray($a1, $a2[$i]) Then _ArrayDelete($a1, $i)
    Next
    For $i = UBound($a2) - 1 To 0 Step -1
    If _StringInArray($a2, $b1[$i]) Then _ArrayDelete($a2, $i)
    Next
    EndFunc

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

    Func _StringInArray($a, $s)
    For $i = 0 To UBound($a) - 1 Step 1
    If $a[$i] = $s Then Return True
    Next
    Return False
    EndFunc

    [/autoit]

    Danach sollte in beiden Arrays nur 1 Element vorhanden sein, und zwar der geänderte Buchstabe.
    Sollte ein Laufwerk verbunden oder abgeklemmt werden wärend der Installation bleiben mindestens 2 Einträge übrig. (1. die Nummer die sich geändert hat und 2. der Buchstabe des geänderten Laufwerks)

  • @scriptdir schlägt nach Wechsel des Laufwerksbuchstabens (in laufender exe) fehl

    • Mars
    • 13. März 2013 um 22:49

    Du kannst versuchen per DriveGetDrive alle verbundenen Laufwerke zu ermitteln.
    Unmittelbar vor dem Setup wird die Liste erstellt und unmittelbar danach erneut.

    Dann müsste die Liste bis auf 1 Laufwerk identisch sein.
    Wenn man alle doppelten Einträge löscht bleibt im ersten Array das Alte und im 2ten das Neue Laufwerk zurück.

    Wenn ich das Problem richtig verstanden habe müsste es damit gehen.
    Nachteil ist, dass man wärend der Installation keine Sticks dran oder abhängen darf. sonst sind die Arrays falsch.

  • Struct via "Struct.Element" ansprechen - Beta 3.3.9.5

    • Mars
    • 10. März 2013 um 17:58

    Und ich dachte das würde statisch gelinkt vor dem Ausführen und deshalb wäre keine dynamische ansprache der Structelemente möglich.
    Aber Minx ist derjenige der die Lücke im System findet^^
    Eval ist nicht so schön wie eine Funktion. Lieber die Func benutzen.

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Mars
    • 7. März 2013 um 17:43

    AutoIt wird immer schneller.
    Das habe ich schonmal mit 3 Versionen (welche das genau waren weiß ich nicht mehr) auf mindestens 4 Rechnern überprüft.
    Jeweils kurze Benchmarks in willkürlicher Reihenfolge tausende Male ablaufen lassen.

    Dabei kam raus, dass Stable Versionen etwas langsamer sind als die Betas
    Neuere Versionen sind etwas schneller als ältere.

    Meine Vermutung ist, dass die Compiler immer besser werden. AutoIt hängt indirekt also auch mit dem Compiler der verwendet wird zusammen.

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Mars
    • 7. März 2013 um 00:32

    Und wie kommt man dann an die neuste Alpha dran ?
    Da muss es doch einen lieben Bub geben, der uns da helfen will.
    Und wenn mans nicht öffentlich machen darf reicht mir auch eine PN.
    Ich möchte nur mal wieder "up to Date" sein.

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Mars
    • 6. März 2013 um 23:48
    Zitat von water

    Vom Forum downloaden kann man:

    AutoIt v3.3.9.5 Alpha 1 vom 8.8.2012
    AutoIt v3.3.9.5 Alpha 2 vom 2.10.2012


    Wenns geht hätte ich gerne die Version 2.10.12 geuppt von irgendwem.
    Ich kann das "Vom Forum" nicht finden.
    Meine aktuellste ist die gleiche wie die X2, die ist bald 1 Jahr alt !

  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • Mars
    • 6. März 2013 um 00:37

    Meine schlimmste Befürchtung ist, dass der ganze schöne Kram aus der 3.3.9.5 wieder gestrichen wird und die nächste Stable eher der 8.1 entspricht.
    Ich weiß, dass es unklug war, aber ich habe einige Skripte in 9.5 Syntax geschrieben. Und zwar einfach, weil es praktisch ist.

    Aber schön, dass hier die 9.5 zur Verfügung steht.

  • [C“ 2013] The winners!

    • Mars
    • 3. März 2013 um 19:33
    Zitat von Andy

    aha...NOCH kompakter?

    [autoit='Beispielzeilen']

    Return ($kk[$kc]=$1 Or 0*Assign($2,$1=0)) And Assign($2,$kc+1) And $kc>9 And ka($3)+Assign("kc",0)

    For $4=199 To 0 Step -Assign("w",1,2)*Assign($2,Random(0,6,1),2)*Assign("x",5,2)+0*d(1,3,1)*d(1);...
    ExitLoop GUICtrlSetBkColor($s[$4/10+2][Mod($4,10)],0) And $4=0 And GUICtrlSetData($_[1],Execute($t))
    Next;...............................................................................................

    [/autoit]

    50% sind da noch drin ;)

    [autoit]

    ("l'',320,0,128,512,1)"),$q=6,$s[10][4],$5,$o=L _
    ("m-1,2105376)")+GUICtrlSetColor(-1, 8421504) + _
    GUICtrlSetFont(-1, 13,500,0,'Arial',5)+L("6'p"& _
    "',L('l@LF,144,480,32,32)'))")+L("m-1,4227136)" _
    )+L($k)+I(Not StringIsDigit($b),"6'b',L('j99,"& _
    "999,1)'))")+SRandom($b)+GUISetState(),$t="6'"& _
    "o',$i+1)",$u="9|0|-1|I(Not $s[$i][0],$t)",$7[7 _
    ]=["6'n',0)","6'o',$o-1)","l'',$l+8,472,16,16)" _
    ,"6'o',Int($q^0.7/5))","6'o',$o-($o-5)*($o>5))" _

    [/autoit]

    Man muss sich nur eine Kleine Interpreterfunktion basteln in die man den von hand kleingemachten Code stopft (hier die Funktion "L"). Dann kann man mit 5 Zeilen eine For Funktion basteln, sodass man keine Zeilen mehr für das For in -> Next verschwenden muss. (While Schleifen einfach als For 9999999 usw)
    Aber ich muss schon sagen, dass dieser Code mir sehr gefallen hat. (lief bei mir nicht direkt, was schade ist)
    Das Skript von BugFix fand ich auch sehr gelungen, das Problem liegt hier im Umfang. Andere haben ein ganzes Spiel programmiert...
    Das Skript von Minx startet bei mir immer den VLC Player und will nicht unterstützte Sounds abspielen, sonst ganz ok. Kompressionstechnisch aber lachhaft, 90% Whitespace^^

  • Frage zu sauberer Syntax

    • Mars
    • 27. Februar 2013 um 09:42

    Es gibt einige Standards an die man sich beim Programmieren halten kann (aber nicht muss).
    Dadurch werden Skripte besser lesbar.

    Eine Liste findest du hier: UDF-Standards

    Allerdings gibts immer Abweichungen.
    Ich nutze z.B. auch $b für boolean anstatt $f

    Dann existieren noch Sachen wie $btn mit denen man Variablen kennzeichnet die ein Button"handle" beinhalten (zum Handle oder nicht Handle gabs auch schon umfangreiche Disskussionen^^) oder $ptr um zu zeigen, dass es sich beim gespeicherten Integer um einen Pointer handelt, usw usw.

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™