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

Beiträge von name22

  • ListItems als variable?

    • name22
    • 5. Mai 2010 um 19:47

    Ich hab dir schon einmal gesagt du sollst GUICtrlRead verwenden und in meinem anderen Post ist es sogar noch genauer erklärt. Du überließt scheinbar gerne wichtige Posts. :huh:

  • 2 Screenshots übereinander (GDI+)

    • name22
    • 5. Mai 2010 um 19:25

    Das Problem dabei ist: Dein Script funktioniert bereits ;).
    Wenn du ein Bild machst, und einen Ausschnitt des selben Bildes noch einmal darüber zeichnest und zwar exakt an der Position wo es vorher war ist es doch völlig logisch, dass du keinen Unterschied siehst. :D
    Als Beispiel habe ich den Ausschnitt des 2ten Screenshots mal an eine andere Position gezeichnet.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <WinAPI.au3>
    _GDIPlus_Startup()
    $hBitmap1 = _ScreenCapture_Capture("")
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap1)
    $hBitmap2 = _ScreenCapture_Capture("", 0, 0, 100,100)
    $hImage2 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap2)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
    _GDIPlus_GraphicsDrawImage($hGraphic,$hImage2,50,50)
    _GDIPlus_ImageSaveToFile($hImage1, @DesktopDir & "\GDIPlus_Image.jpg")
    _GDIPlus_BitmapDispose($hImage1) ;<-
    _GDIPlus_BitmapDispose($hImage2) ;<-
    _WinAPI_DeleteObject($hBitmap1)
    _WinAPI_DeleteObject($hBitmap2)
    _GDIPlus_Shutdown()

    [/autoit]


    Außerdem sind deine Variablen $hImage1 und 2, Handles zu Bitmaps und müssen deswegen dementsprechend angepasst werden. ;)

    Edit: Was bitte sind Screenshorts? 8| Das klingt nach einer ziemlich eigenartigen Hose. :rofl:

  • [Ende] AutoIt Bilder Wettbewerb

    • name22
    • 5. Mai 2010 um 19:09

    Juhuuu sechster :rofl: .
    Das Bild habe ich mit einem Programm gemacht mit welchem ich seit ca. 1 Tag gearbeitet hatte. ^^
    Das hier wäre sozusagen Version 2.0 :D

  • Musikplayer "next" funktion schreiben (vllt auch ne wiederholen funktion aber das wäre eher mein ding^^)

    • name22
    • 4. Mai 2010 um 21:13

    Oder du bewegst die Maus auf das TrayIcon und klickst wie ein Blöder mit der rechten Maustaste :D .

  • ListItems gehen nicht. Fenster "einfrieren".

    • name22
    • 4. Mai 2010 um 20:40

    Das Fenster verschiebt sich zwar ziemlich schnell in die alte Position zurück, aber eben einfach nicht schnell genug. ;)
    Deswegen sieht es ein bisschen danach aus als würde es flackern.

  • 2 Screenshots übereinander (GDI+)

    • name22
    • 4. Mai 2010 um 20:35

    Beispiel aus der Hilfe (die scheinbar niemand ließt der es gebrauchen könnte)

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <WinAPI.au3>

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

    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hBitmap1, $hBitmap2, $hImage1, $hImage2, $hGraphic, $width, $height

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

    ; Initialisiert (startet) Microsoft Windows GDI+
    _GDIPlus_Startup()

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

    ; Erstellt vom kompletten Bildschirm einen Screenshot
    $hBitmap1 = _ScreenCapture_Capture("")
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap1)

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

    ; Erstellt von einem Bereich einen Screenshot
    $hBitmap2 = _ScreenCapture_Capture("", 0, 0, 400, 300)
    $hImage2 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap2)

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

    $width = _GDIPlus_ImageGetWidth($hImage2)
    $height = _GDIPlus_ImageGetHeight($hImage2)

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

    ; Zeichnet ein Bild in ein anderes
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)

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

    ; DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    DrawInsert($hGraphic, $hImage2, 350, 100, 0, $width + 2, $height + 2, 0xFFFF8000, 2)
    DrawInsert($hGraphic, $hImage2, 340, 50, 15, 200, 150, 0xFFFF8000, 4)
    DrawInsert($hGraphic, $hImage2, 310, 30, 35, $width + 4, $height + 4, 0xFFFF00FF, 4)
    DrawInsert($hGraphic, $hImage2, 320, 790, -35, $width, $height)

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

    ; Speichert das neue Bild
    _GDIPlus_ImageSaveToFile($hImage1, @DesktopDir & "\GDIPlus_Image.jpg")

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

    ; Ressourcen freigeben
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_ImageDispose($hImage2)
    _WinAPI_DeleteObject($hBitmap1)
    _WinAPI_DeleteObject($hBitmap2)
    ; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
    _GDIPlus_Shutdown()

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

    EndFunc ;==>_Main

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

    ; #FUNCTION# ==================================================================================================
    ; Name...........: DrawInsert
    ; Beschreibung...: Zeichnet ein Bild in ein anderes
    ; Syntax.........: DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    ; Fügt das Bild $hImage2 in $hGraphic ein
    ;
    ; Parameter......: $hGraphics - Handle zum Grafikobjekt
    ; $hImage - Handle zum einzufügenden Bild-Objekt
    ; $iX - X-Koordinate der oberen linken Ecke des eingefügten Bildes
    ; $iY - Y-Koordinate der oberen linken Ecke des eingefügten Bildes
    ; $iWidth - Breite des Rechteckrahmens um das eingefügte Bild
    ; $iHeight - Höhe des Rechteckrahmens um das eingefügte Bild
    ; $iARGB - Alpha, Rot, Grün und Blau: Komponenten der Stiftfarbe des Rahmens
    ; $nWidth - Breite des Zeichenstifts für den Rahmen
    ; (die Einheit wird im $iUnit-Parameter der _GDIPlus_PenCreate-Funktion festgelegt)
    ;
    ; Rückgabewerte..: Erfolg - True
    ; Fehler - False
    ;==================================================================================================
    Func DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    Local $hMatrix, $hPen2

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

    ; Rotationsmatrix
    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixRotate($hMatrix, $nAngle, "False")
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)

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

    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage2, $iX, $iY)

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

    ; Ermittelt Stift + Farbe
    $hPen2 = _GDIPlus_PenCreate($iARGB, $nWidth)

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

    ; Zeichnet einen Rahmen um das eingefügte Bild
    _GDIPlus_GraphicsDrawRect($hGraphic, $iX, $iY, $iWidth, $iHeight, $hPen2)

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

    ; Ressourcen freigeben
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_PenDispose($hPen2)
    Return 1
    EndFunc ;==>DrawInsert

    [/autoit]
  • Bilder laden

    • name22
    • 4. Mai 2010 um 20:31

    Du zeichnest einen Pacman um danach ein Bild von ihm zu laden ohne dessen Handle in einer Variable zu speichern?
    Hast du dir mal ein Tutorial durchgelesen wie wir es dir vermutlich schon oft empfohlen haben? Wohl kaum... Du kennst scheinbar nicht mal den Unterschied zwischen Back- und Frontbuffer, verwendest es aber gleich mal in "deinem" Script. :thumbdown:
    Das ist zwar immer noch völlig ineffizient, da du Tastendrücke mitten in der GUILoop abfragst, und alles in 5ms Abständen neu zeichnest, aber so müsste es funktionieren... :rolleyes:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    Global $GUIWidth = 600
    Global $GUIHeight = 600
    Global $iX = 100
    Global $iY = 100
    Global $piewidth = 0
    Global $pieheight = 320

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

    $form = GUICreate("Test", 600, 600)
    $hwnd = WinGetHandle($form)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()

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

    $hgraphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hgraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
    ;~ $pac = _GDIPlus_BrushCreateSolid (0xFFFFFF00)
    ;~ _GDIPlus_GraphicsFillPie ($hgraphics, 100,100, 25, 25,0,320, $pac)

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

    $hImage_pac = _GDIPlus_ImageLoadFromFile("pacman.jpg")

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

    _GDIPlus_GraphicsDrawImageRect($hgraphics, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If _IsPressed("25") Then
    $iX -= 3
    Draw()
    EndIf
    If _IsPressed("26") Then
    $iY -= 3
    Draw()
    EndIf
    If _IsPressed("27") Then
    $iX += 3
    Draw()
    EndIf
    If _IsPressed("28") Then
    $iY += 3
    Draw()
    EndIf
    WEnd

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

    Func Draw()
    _GDIPlus_GraphicsClear($hgraphics)
    _GDIPlus_GraphicsDrawImageRect($hgraphics, $hImage_pac, $iX, $iY, 25, 25)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc ;==>Draw

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hgraphics)
    _GDIPlus_ImageDispose($hImage_pac)
    _GDIPlus_Shutdown()
    EndFunc ;==>_Exit

    [/autoit]
  • If schleifen fehler ?!?

    • name22
    • 4. Mai 2010 um 18:48

    Ich hätte nicht gedacht, dass ich das mal sagen muss, aber ließ mal die Hilfe JuraX. 8|

  • Datei in bestimmtes Verzeichnis von Windows kopieren geht nicht, manche Verzeichnisse scheinen geschützt?

    • name22
    • 4. Mai 2010 um 18:26

    Schon mal versucht irgendeine wichtige dll zu löschen? :D
    Wenn du es als User mit Adminrechten nicht kannst kann es auch kein anderes legales Programm.

  • GDI+: Seltsame Linien durch _GDIPlus_GraphicsSetSmoothingMode

    • name22
    • 4. Mai 2010 um 16:59

    Du müsstest vermutlich alles ein wenig überlappend zeichnen. :S
    Das Problem hatte ich auch schon oft... Es hängt damit zusammen, dass der SmoothingMode die Kanten nach außen hin leicht transparent macht.

    Edit: Versuche nur das mit SmoothingMode zu zeichnen was nötig ist. Du kannst ja mit mehreren Bitmaps und Grafiken arbeiten. ;)

  • Afk UDF

    • name22
    • 4. Mai 2010 um 16:48

    Was spricht dagegen _Timer_GetIdleTime zu verwenden? :P

  • Datei in bestimmtes Verzeichnis von Windows kopieren geht nicht, manche Verzeichnisse scheinen geschützt?

    • name22
    • 4. Mai 2010 um 15:36

    Versuch mal #Require-Admin an den Anfang des Scrpits zu setzen. Falls das nicht hinhaut kannst du das mit AutoIt wohl vergessen, denn bestimmte Bereiche des Systems sind logischerweise komplett geschützt. ;)

  • UDF um Bilder Transparent zu machen

    • name22
    • 4. Mai 2010 um 12:36

    Da fehlt aber eine Funktion. ;)

  • 1D-2DArray Doppelte Elemente finden und Entfernen

    • name22
    • 3. Mai 2010 um 22:53

    Wieso nicht gleich _ArrayUnique verwenden? ;)

  • fokus auf fenster halten

    • name22
    • 3. Mai 2010 um 21:28

    Ich kann mir beim besten Willen nicht vorstellen was genau du willst, aber suchst du vielleicht WinSetOnTop ?

  • array inhalt addieren?

    • name22
    • 3. Mai 2010 um 21:27
    Zitat

    Dann aber auch mit den richtigen Variablen :)


    Die waren von Anfang an falsch, und ich hab es übersehen, siehe Edit in meinem 1ten Post.

  • array inhalt addieren?

    • name22
    • 3. Mai 2010 um 21:17
    [autoit]

    $w1=WinList("A") ;anazhl aller fenster die mit "A" beginnen
    $w2=WinList("T") ;anazhl aller fenster die mit "T" beginnen
    $w3=$w1 [0][0] + $w2 [0][0] ;summer aller fenster mit "A" und "T"

    ToolTip("Counter"& @CRLF &$w3,1840,1135)

    [/autoit]


    "$w3" Ist kein Array ;).
    Edit: Außerdem hast du fast alle Variablen/Arrays falsch benannt. :cursing: So korrigiert.

  • Programm (Download+Update Check+PhP/Mysql Login) grundbasis

    • name22
    • 3. Mai 2010 um 20:26
    Zitat

    Aber mit dem downloaden habe ich immer noch net hinbekommen.
    Probier ich mal weiter :) Ich melde mich später nochmal


    Ich bin mir nicht sicher wie du das anstellen willst, ich kenne das bis jetzt nur mit INetGet. ;)

  • 3. Fremdsprache: Französisch relavant für Programmieren?

    • name22
    • 3. Mai 2010 um 20:24
    Zitat

    Die Schüler sollen schneller fertig sein, damit man sie früher in die Arbeitslosigkeit entlassen kann :D


    Ach so, jetzt verstehe ich endlich wofür wir das Kultusministerium eigentlich brauchen. :rofl:

  • 3. Fremdsprache: Französisch relavant für Programmieren?

    • name22
    • 3. Mai 2010 um 20:18
    Zitat

    Ja, G8 ist echt schei*e!


    Stimmt! Danke Kultusministerium... :rolleyes:
    Wo wir gerade dabei sind :D, was sollte das ganze eigentlich bringen?

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™