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

Beiträge von eukalyptus

  • µit - März

    • eukalyptus
    • 23. März 2009 um 23:07

    Also dieses Sudoku:
    A:000000103900050000000000800060020070001000000000300000000001460720000050000800000
    L:584762193913458726672913845865129374231547689497386512359271468728634951146895237
    schafft mein Script in wenigen Augenblicken ;)

    Aber mit diesem hab ich die größten Probleme:
    A:100050000006009000080200004040030008007000060900000100030800002000004050000010700
    L:123457689456189327789263514245631978317948265968725143531876492672394851894512736

    Da bekomm ich auch nach 10min noch kein Resultat :(
    (und das ist nicht das einzige, bei dem mein Script versagt)

    da hab ich noch einiges an Arbeit vor mir ...

    lgE

  • Bild drehen

    • eukalyptus
    • 22. März 2009 um 21:03

    Hi

    Such mal im Forum nach $WM_Paint und GuiRegisterMsg

    lgE

  • Bild drehen

    • eukalyptus
    • 22. März 2009 um 20:36

    Na so ;) :

    [autoit]

    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    $hGui = GUICreate("Test Rotate", 800, 600)
    GUISetState()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)

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

    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test.bmp")
    $iWidth = _GDIPlus_ImageGetWidth($hImage) * 96 / _GDIPlus_ImageGetVerticalResolution($hImage)
    $iHeight = _GDIPlus_ImageGetHeight($hImage) * 96 / _GDIPlus_ImageGetHorizontalResolution($hImage)

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

    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixTranslate($hMatrix, 400, 300)

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

    For $i = 1 To 360
    _GDIPlus_MatrixRotate($hMatrix, 1, "False")
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, -$iWidth / 2, -$iHeight / 2)
    Sleep(1)
    Next

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

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

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

    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

    [/autoit]

    lgE

  • Hilfe für ein Autoitmitglied

    • eukalyptus
    • 22. März 2009 um 18:35

    Hi

    Mein Amilo ist leider nicht kompatibel zu deinem, aber probiers mal hier:
    http://www.amilo-forum.de/topic,25349,-W…rfolgreich.html

    lgE

  • Bild drehen

    • eukalyptus
    • 22. März 2009 um 18:26

    Dazu gibts ein Beispiel in der Hilfe

    Keywords:GdiPlus und Matrix...

    lgE

  • Press any key (GetKeyboardState)

    • eukalyptus
    • 22. März 2009 um 13:49

    Es gibt zwar die IsPressed -UDF mit einer Anykey -Funktion, die allerdings für jede Taste einen eigenen DLLCall ausführt

    Hier 3 Beispiele, wie man die GetKeyboardState-Funktion nutzen könnte:

    Spoiler anzeigen
    [autoit]

    $hGui = GUICreate("Example 1 - Press any key to exit...", 400, 100)
    GUISetState()
    $sKeyboardState = _WinAPI_GetKeyboardState(1)
    While _WinAPI_GetKeyboardState(1) = $sKeyboardState
    Sleep(100)
    WEnd
    GUIDelete($hGui)

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

    Sleep(500)

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

    $hGui = GUICreate('Example 2 - Press "A" to exit...', 400, 200)
    GUISetState()
    $aKeyboardStateOld = _WinAPI_GetKeyboardState()
    While 1
    $aKeyboardState = _WinAPI_GetKeyboardState()
    If $aKeyboardState[65] <> $aKeyboardStateOld[65] Then ExitLoop
    Sleep(100)
    WEnd
    GUIDelete($hGui)

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

    Sleep(500)

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

    $hGui = GUICreate('Example 3 - Type...', 400, 400)
    $hLabel = GUICtrlCreateLabel("", 2, 2, 396, 396)
    GUISetState()
    While GUIGetMsg() <> -3
    $aKeyboardState = _WinAPI_GetKeyboardState()
    $sKeys = "I" & @TAB & "CHR" & @TAB & "State" & @TAB & "Toogle" & @LF
    For $i = 65 To 90
    $sKeys &= $i & @TAB & Chr($i) & @TAB & BitAND($aKeyboardState[$i], 0xF0) & @TAB & BitAND($aKeyboardState[$i], 0x0F) & @LF
    Next
    GUICtrlSetData($hLabel, $sKeys)
    Sleep(100)
    WEnd

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _WinAPI_GetKeyboardState
    ; Description ...: Returns the status of the 256 virtual keys
    ; Syntax.........: _WinAPI_GetKeyboardState($iFlag=0)
    ; Parameters ....: $iFlag - Return Type
    ; 0Returns an array[256]
    ;1Returns a string
    ; Return values .: Success - Array[256] or String containing status of 256 virtual keys
    ; Failure - False
    ; Author ........: Eukalyptus
    ; Modified.......:
    ; Remarks .......: If the high-order bit is 1, the key is down; otherwise, it is up.
    ;If the key is a toggle key, for example CAPS LOCK, then the low-order bit is 1
    ;when the key is toggled and is 0 if the key is untoggled
    ; Related .......: _IsPressed
    ; Link ..........;
    ; Example .......;
    ; ===============================================================================================================================
    Func _WinAPI_GetKeyboardState($iFlag = 0)
    Local $aDllRet, $lpKeyState = DllStructCreate("byte[256]")
    $aDllRet = DllCall("User32.dll", "int", "GetKeyboardState", "ptr", DllStructGetPtr($lpKeyState))
    If @error Then Return SetError(@error, 0, 0)
    If $aDllRet[0] = 0 Then
    Return SetError(1, 0, 0)
    Else
    Switch $iFlag
    Case 0
    Local $aReturn[256]
    For $i = 1 To 256
    $aReturn[$i - 1] = DllStructGetData($lpKeyState, 1, $i)
    Next
    Return $aReturn
    Case Else
    Return DllStructGetData($lpKeyState, 1)
    EndSwitch
    EndIf
    EndFunc ;==>_WinAPI_GetKeyboardState

    [/autoit]

    lgE

  • PDF_UDF zum erstellen von PDF-Dateien ?!

    • eukalyptus
    • 19. März 2009 um 14:41

    Eigentlich sollte das gehen!

    Allerdings würde ich mich dann nur auf die wesentlichen Funktionen beschränken
    Leider kenn ich mit Pdf´s zuwenig aus, welche Objekte man nun tatsächlich benötigt -
    Also Textformatierung, Grafische Objekte usw.
    Und welche man vernachlässigen kann...

    Aber toll wärs auf jeden Fall, wenn man das ohne FremdDll erledigen könnte!

    lgE

  • PDF_UDF zum erstellen von PDF-Dateien ?!

    • eukalyptus
    • 19. März 2009 um 01:57

    So, erster Versuch ;)

    Folgende Dateien sind enthalten:
    hpdf.pas = Delphi Datei, aus welcher dann die hpdf.au3 generiert wird
    hpdfconstants.au3
    libhpdf.dll
    TestHpdf.au3 = ein kleines Testscript, das am Schluß eine Pdf erstellen soll
    Translate.au3 = Dieses Script übersetzt hpdf.pas (Delphi) nach hpdf.au3


    Translate.au3 ausführen, TestHpdf.au3 ausführen und Test.pdf ansehen (falls alles geklappt hat ^^ )

    Schaut zwar schon mal nicht so schlecht aus, aber die ganzen Funktionen mit den Structs - OJE!!!
    Ob das mal alles funktionieren wird ;(
    Mit dem Errorhandling muß ich mir auch noch was überlegen.

    lgE

  • Was macht die DLL Funktion SetLayeredWindowAttributes ?

    • eukalyptus
    • 18. März 2009 um 18:59

    Normalerweise mußt du nur mit der Farbe 0xFFABCDEF drübermalen...

    Allerdings klappt das nicht mit GraphicsDrawArc !?
    Mit GraphicsFillRect funzt das löschen super (siehe Mausverfolger)

    keine Ahnung wieso!

  • PDF_UDF zum erstellen von PDF-Dateien ?!

    • eukalyptus
    • 18. März 2009 um 18:36

    Ich spiele grad mit dem Gedanken, das automatisch erledigen zulassen.
    Und zwar konkret direkt vom beiliegenden Delphi-Wrapper zu übersetzen.

    mal sehen, wie kompliziert das ganze ist und ob das nicht nachher in zu intensiever Fehlersuche mündet...

    lgE

  • PDF_UDF zum erstellen von PDF-Dateien ?!

    • eukalyptus
    • 18. März 2009 um 18:01

    Hi all

    Nachdem ich für mein Projekt Rasterbator Rasterbator Clone - Erstellen von riesigen Postern
    schon ein paar Funktionen für die "Haru Free Pdf Library" geschrieben hab, könnten wir doch daraus eine komplette Pdf-Udf machen!

    Besteht Interesse bzw. wer würde mir dabei helfen?

  • Was macht die DLL Funktion SetLayeredWindowAttributes ?

    • eukalyptus
    • 18. März 2009 um 17:10

    Sorry, hab die Function aus diesem Tread http://www.autoitscript.com/forum/index.php?showtopic=84055, und da steht nirgens wo ProgAndy...

    naja, du wirst es doch hoffentlich überleben ?!? ^^

  • Was macht die DLL Funktion SetLayeredWindowAttributes ?

    • eukalyptus
    • 18. März 2009 um 08:38

    Grob gesagt setzt du damit die Farbe, welche das Fenster durchsichtig macht.
    Wenn du z.B. die Farbe 0xABCDEF setzt und dann damit ein Quadrat zeichnest, ist genau dieser Bereich dann durchsichtig.

    (beim Mausverfolgerscript "lösche" ich die Quadrate eben mit dieser Farbe)

    lgE


    EDIT: als Beispiel:

    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $hGui = GUICreate("Test", 120, 120, -1, -1, -1, $WS_EX_LAYERED)
    _WinAPI_SetLayeredWindowAttributes($hGui, 0xABCDEF, 255)
    GUICtrlCreateLabel("Test", 10, 10, 100, 100)
    GUICtrlSetBkColor(-1, 0xABCDEF)
    GUISetState()

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

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

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

    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    ; Von progandy Thx^^
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes

    [/autoit]
  • GDI+ Visualization: Analog Meter

    • eukalyptus
    • 16. März 2009 um 19:30

    Auch unter Vista gibt es den Stereomix um den Output aufzunehmen:

    Rechtsklick auf das Lautsprechersymbol -> Aufnahmegeräte -> Rechtsklick -> "deaktivierte Geräte anzeigen"
    Dann erscheinen dann alle möglichen Devices, welche man dann aktivieren kann.

    _BASS_RecordInit($bass_dll, -1) der Parameter gibt das Aufnahmegerät an, wird bei UEZ warscheinlich 2 sein...(-1 = Default, wahrscheinlich Mikro)
    Weiß allerdings nocht nicht, wie man automatisch erkennt, welcher der richtige ist...

    lgE

  • Bild in Icon umwandeln?

    • eukalyptus
    • 13. März 2009 um 10:32

    Wurde die Dll richtig geladen? $FIDLL = 1 ?
    Wurde das Bild richtig geladen? $FIPic[0] > 0 ?

    Falls du ein anderes Format als Bmp laden willst, mußt du die $FIF_BMP in Zeile 9 ersetzen.
    zb.: JPG hat den Wert 2, TIFF den Wert 18...

    Lade dir auch den Freeimage Source herunter, da findest du alle weiteren Constanten...

  • Bild in Icon umwandeln?

    • eukalyptus
    • 13. März 2009 um 10:18

    http://lmgtfy.com/?q=freeimage ^^

  • Bild in Icon umwandeln?

    • eukalyptus
    • 13. März 2009 um 09:59

    Hi

    Noch nichts... ;)
    Du mußt noch warten, bis Progady den Code fertig hat!
    Und das ist, wie er selbst schon gesagt hat, ziemlich aufwändig...

    Alternativ könntest du FreeImage.dll benutzen, die ist allerdings 2mb groß.

    [autoit]

    $BMPFile = @ScriptDir & "\Test.bmp"

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

    $FIF_BMP = 0
    $FIF_ICO = 1
    $FILTER_LANCZOS3 = 5

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

    $FIDll = DllOpen(@ScriptDir & "\FreeImage.dll")

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

    $FIPic = DllCall($FIDll, "dword", "_FreeImage_Load@12", "dword", $FIF_BMP, "str", $BMPFile, "int", 0)
    $FIPic_1 = DllCall($FIDll, "dword", "_FreeImage_Rescale@16", "dword", $FIPic[0], "int", 48, "int", 48, "dword", $FILTER_LANCZOS3)
    DllCall($FIDll, "int", "_FreeImage_Save@16", "int", $FIF_ICO, "dword", $FIPic_1[0], "str", StringTrimRight($BMPFile, 3) & "ico", "int", 0)

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

    $Ret=DllCall($FIDll, "int", "_FreeImage_Unload@4", "dword", $FIPic_1[0])
    $Ret=DllCall($FIDll, "int", "_FreeImage_Unload@4", "dword", $FIPic[0])

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

    DllClose($FIDll)

    [/autoit]
  • Seagate-Festplatten

    • eukalyptus
    • 12. März 2009 um 00:18

    Oda gleich SSD verwenden:

    http://www.youtube.com/watch?v=96dWOEa4Djs

    naja, wenn man geld hat...

  • Probleme mit Programm-Neustart Skript.

    • eukalyptus
    • 11. März 2009 um 11:41

    Was gendenkst du mit folgendem zu bezwecken:

    [autoit]

    For $i = 1 To UBound($a) - 1
    $Return = ProcessGetWindows($a[$i][1])
    Next

    [/autoit]

    ?

    Mit jedem Durchlauf wird $Return überschrieben und nur der letzte Eintrag wird dann im DLLCall verwendet.

    Welchen Wert hat $Return in Zeile 119?

    Ich kann da leider nix testen, weil ich kein Outlook hab ;)

    lgE

  • GDI+ Visualization: Analog Meter

    • eukalyptus
    • 11. März 2009 um 10:50

    Dazu mußt du die Record-funktionen verwenden und den Input der Soundkarte auf "What you hear" oder "StereoMix" oder so ähnlich stellen.

    lgE

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™