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

Beiträge von PenGuin

  • Text an ein Fenster senden

    • PenGuin
    • 8. Juli 2010 um 18:56
    Spoiler anzeigen
    [autoit]


    ; send single keyboard event to non active window
    ; event = pressed, down, up
    ; kdown = key down delay
    ; note: supports only lower case keys + NUMx, Fx, some special keys and @
    Func KeySend($hwnd, $inkey, $evt ="pressed", $kdown = 50)
    $user32 = DllOpen("user32.dll")
    if $user32 = -1 Then
    ConsoleWrite("KeySend: cannot open user32.dll")
    Exit
    EndIf

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

    ; handling for special keys
    Switch StringUpper($inkey)
    Case "@"
    $skey = 0x40
    $lparam = 0x00100001
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", 0x71, "long", $lparam)
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_CHAR, "int", $skey, "long", $lparam)
    Sleep(20)
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", 0x71, "long", BitOR($lparam, 0xC0000000))
    Case "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"
    $skey = 0x6f + Int(StringMid($inkey, 2))
    ContinueCase
    Case "NUM0", "NUM1", "NUM2", "NUM3", "NUM4", "NUM5", "NUM6", "NUM7", "NUM8" , "NUM9"
    if StringUpper(StringLeft($inkey, 3)) = "NUM" Then
    $skey = 0x60 + Int(StringMid($inkey, 4))
    EndIf
    ContinueCase
    Case "RETURN", "SPACE", "TAB", "BACK", "END", "HOME", "SNAPSHOT", "INSERT", "DELETE", "LEFT", "RIGHT", "UP", "DOWN"
    Switch StringUpper($inkey)
    Case "RETURN"
    $skey = 0x0D
    Case "SPACE"
    $skey = 0x20
    Case "TAB"
    $skey = 0x09
    Case "BACK"
    $skey = 0x08
    Case "END"
    $skey = 0x23
    Case "HOME"
    $skey = 0x24
    Case "SNAPSHOT"
    $skey = 0x2c
    Case "INSERT"
    $skey = 0x2d
    Case "DELETE"
    $skey = 0x2e
    Case "LEFT"
    $skey = 0x25
    Case "RIGHT"
    $skey = 0x27
    Case "UP"
    $skey = 0x26
    Case "DOWN"
    $skey = 0x28
    EndSwitch
    $ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)
    $lparam = BitShift($ret[0], -16)
    $lparam = BitOr($lparam, 1)
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
    Sleep($kdown)
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long", BitOR($lparam, 0xC0000000))
    Case Else ; default lower case key handling
    $key = DllCall($user32, "int", "VkKeyScan", "int", Asc(StringLower($inkey)))
    $skey = $key[0]
    $ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)
    $lparam = BitShift($ret[0], -16)
    $lparam = BitOr($lparam, 1)
    Select
    Case $evt = "pressed"
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
    Sleep($kdown)
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long", BitOR($lparam, 0xC0000000))
    Case $evt = "down"
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)
    Case $evt = "up"
    DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "long", BitOR($lparam, 0xC0000000))
    EndSelect
    EndSwitch

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

    DllClose($user32)
    EndFunc

    [/autoit]

    Alternative zu ControlSend und sollte überall laufen

  • Der musikalische SEuBo

    • PenGuin
    • 8. Juli 2010 um 18:53
    Zitat von Alizame

    lirycs?

    Aua 8|
    Da tun doch schon die Augen beim Hingucken weh!
    Never heard "Lyrics" ;)

  • Dll Problem

    • PenGuin
    • 6. Juli 2010 um 00:10

    So weit ich weiß muss man immer

    [autoit]


    $aRet = DLLCAll(..)
    Return $aRet[0]

    [/autoit]


    machen, also Array...

  • LK Scripts - Spice up your Windows

    • PenGuin
    • 5. Juli 2010 um 23:35

    WAs hat man für Verpflichtungen dann als Teilhaber?
    Gibt es ein Mindestalter?

    Ich würde eigentlich gerne dem Team beitreten...

  • Input werte der größe nach ordnen lassen

    • PenGuin
    • 5. Juli 2010 um 18:44

    Guck mal in den Source meines Arbeitsplaners, da habich mit Raupi ziemlich viel mit LV gearbeitet :thumbup:

  • while schleife beenden wen bestimmter pixel aufm desctop angezeigt wird

    • PenGuin
    • 5. Juli 2010 um 01:01

    FF.au3 UDF Downloaden :)

  • Veränderung vermeiden

    • PenGuin
    • 4. Juli 2010 um 23:46

    Einfach die Ini im Systemverzeichnis erstellen, da schaut keiner nach. Oder halt merken lassen, was du eingetragen hast, und wenn dann was anderes da steht, dann die MsgBox halt.
    Lass doch mal dein Gehirn ein wenig arbeiten...

  • OpenGl - Rotating Scaling Cube

    • PenGuin
    • 4. Juli 2010 um 20:49

    Man muss halt schauen, was das Plugin hergibt :D

  • OpenGl - Rotating Scaling Cube

    • PenGuin
    • 4. Juli 2010 um 20:19

    Ja müsste ich halt schauen wie ich das mache, ich mach erstmal mit kleinen Dingen weiter, denn es gäbe 2 Methoden für ein Jump and Run.
    Erst alle Objecte Mit Shapes erstellen und dann nur camera bewegen, oder immer löschen und neu erstellen...

    Ich weiß auch gar nicht, ob man Texturen laden kann ,da müssste ich nochmal schauen.

  • Der musikalische SEuBo

    • PenGuin
    • 4. Juli 2010 um 20:06

    Ich spiel Klavier, kann aber nicht singen, aber top :thumbup:

  • OpenGl - Rotating Scaling Cube

    • PenGuin
    • 4. Juli 2010 um 20:02

    Anregungen, was man sonst noch machen könnte, sind gerne gesehen, z.B. 2 Würfel erstellen die sich so drehen oder sowas halt!

  • OpenGl - Rotating Scaling Cube

    • PenGuin
    • 4. Juli 2010 um 03:40

    Wieder ein OpenGl Script von mir.
    Mir war grad langweilig, ist nichts Großes^^
    Nur schön anzusehen :D

    Falls es bei euch nicht geht, versucht es mal mit der .exe - Datei.
    Ich versteh immernoch nicht, warum es bei manchen nicht geht :S
    MfG

    Dateien

    Rotating Scaling Cube.zip 638,3 kB – 667 Downloads
  • OpenGl Farben

    • PenGuin
    • 3. Juli 2010 um 22:56

    Naja die Funktion hab ich ja nun, aber wie schauts mit der 2. Frage aus?

  • [GDI+ (1.Script)] *weissnamenicht*

    • PenGuin
    • 3. Juli 2010 um 20:43

    Es wäre besser, wenn du deine Buttons in einer For Schleife erstellst...

  • Irrlicht.au3 fehler?

    • PenGuin
    • 3. Juli 2010 um 19:03

    Mensch, ich mag halt OpenGl lieber, da leichter <.<

  • Irrlicht.au3 fehler?

    • PenGuin
    • 3. Juli 2010 um 15:08

    Na, OpenGl ist sowieso viel schöner^^

  • OpenGl Farben

    • PenGuin
    • 3. Juli 2010 um 15:02
    Zitat von Ahnungslos

    Nur noch eine kleine Anmerkung zum Thema:
    glColor3ub($R, $G, $B) nimmt Werte von 0 bis 255.
    Die Umrechnung übernimmt dann die Dll, sollte schneller sein.
    Lg

    Eine Funktion wie glColor3ub - oder was du auch immer damit meinst^^ - gibt es nicht. Alle Farben werden von 0.0 - 1.0 angegeben.

    Nun bleibt noch die Frage:

    Zitat

    2. Frage:

    Wie bekomm ich die Hintergrundfarbe eines Fensters?
    _WinAPI_GetSysColor($COLOR_WINDOW) geht ja nur bei Fenster, die aktiv sind und den Fokus besitzen. Optimal wäre es, wenn ich die Farbe per Handle bekomme...

    DAnke schonmal für die Beantwortung der Ersten :)

  • OpenGl Farben

    • PenGuin
    • 3. Juli 2010 um 03:35

    Hallo,
    ich bräuchte eure Hilfe, und zwar werden die Farben in OpenGl etwas anders angegeben als bei GDI+
    Normalerweise ist es ja RGB und dann von 00 bis FF pro Farbton.
    Bei OpenGl ist es ähnlich, jedoch mit dem Unterschied, dass es hier von 0.0 - 1.0 geht.

    Nun möchte ich normale Farben (0x000000 - 0xFFFFFF) in OpenGl Farben umwandeln.

    Von Gl nach RGB ist es ja kein Problem, jedoch zurück und ich find den Fehler nicht.
    Mein Anfang sieht so aus:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $Color2 = _RGBToGL("0xFFFFFF")
    ConsoleWrite($Color2 & @CRLF)

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

    Func _RGBToGL($Color)
    $nColor = StringTrimLeft($Color, 2)

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

    $aColor = StringSplit($nColor, "")
    $R = $aColor[1] & $aColor[2]
    $G = $aColor[3] & $aColor[4]
    $B = $aColor[5] & $aColor[6]

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

    $Para1 = _HexToDecimal("0x0000" & $R)
    $Para2 = _HexToDecimal("0x0000" & $G)
    $Para3 = _HexToDecimal("0x0000" & $B)

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

    Return ($Para1 / 255) & "|" & ($Para2 / 255) & "|" & ($Para3 / 255)
    EndFunc

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

    Func _GLToRGB($Para1, $Para2, $Para3)
    $R = StringTrimLeft(Hex(255 * $Para1), 6)
    $G = StringTrimLeft(Hex(255 * $Para2), 6)
    $B = StringTrimLeft(Hex(255 * $Para3), 6)
    Return "0x" & $R & $G & $B
    EndFunc

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

    Func _HexToDecimal($iHex)
    If StringLeft($iHex, 2) = "0x" Then $iHex = StringMid($iHex, 3)
    If StringIsXDigit($iHex) = 0 Then
    SetError(1)
    MsgBox(0,"Error","Wrong input, try again ...")
    Return ""
    EndIf
    Local $ret="", $hx_count=0, $hx_array = StringSplit($iHex, ""), $Ii, $hx_tmp
    For $Ii = $hx_array[0] To 1 Step -1
    $hx_tmp = StringInStr($iHex, $hx_array[$Ii]) - 1
    $ret += $hx_tmp * 16 ^ $hx_count
    $hx_count += 1
    Next
    Return $ret
    EndFunc ;==>_HexToDec()

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

    ;GLtoRGB:

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

    ;Parameter * 255
    ;Das in Hex wandeln
    ;6 Stellen von links kappen
    ;R G B zusammenfügen
    ;0x dranhängen

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

    ;RGBtoGL:

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

    ;0x kappen
    ;R G B trennen
    ;6Stellen dranfügen
    ;Das in Dezimal wandeln
    ; Durch 255 teilen

    [/autoit]


    Unten im Script seht ihr den Ablauf.


    2. Frage:

    Wie bekomm ich die Hintergrundfarbe eines Fensters?
    _WinAPI_GetSysColor($COLOR_WINDOW) geht ja nur bei Fenster, die aktiv sind und den Fokus besitzen. Optimal wäre es, wenn ich die Farbe per Handle bekomme...


    MfG

  • Fehler bei _Crypt_EncryptFile()

    • PenGuin
    • 3. Juli 2010 um 03:18

    Naja Sprenger hat so die Eigenart immer nur die Hälfte eines Posts zu lesen <.<

  • programm das die WAN- und LAN-IP ausgibt

    • PenGuin
    • 2. Juli 2010 um 18:53

    MsgBox statt InputBox würde reichen.
    Ansonsten weiß ich nicht, was ich davon halten soll^^
    Einerseits ist ja deine Anstrengung nett, aber so wirklich schwer ist das ja nicht...

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™