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

  • GUI.Webbroswe

    • name22
    • 9. Mai 2010 um 12:11

    Um es zu speichern gibt es mehrere Möglichkeiten, aber IniRead bzw. IniReadSection und IniWrite sind wohl am besten für deine Zwecke geeignet.

  • "Herausgeber: Unbekannt" ÄNDERN!

    • name22
    • 9. Mai 2010 um 12:09

    Google hilft ;).

  • IniRead (per FTP)

    • name22
    • 9. Mai 2010 um 11:50

    Speichere sie mit INetGet und ließ sie dann mit IniRead aus.

  • Das Skript in einen bestimmten tag und uhrzeit auslösen!

    • name22
    • 9. Mai 2010 um 11:44

    Entweder

    Spoiler anzeigen
    [autoit]

    While Sleep(1000)
    If @MIN = 01 And @HOUR = 15 And @MDAY = 15 And @MON = 5 And @YEAR = 2010 Then Exitloop
    WEnd
    ;das was er dann tun soll z.b.
    MsgBox(0,"DATUM ERREICHT","Das angegebene datum wurde erreicht!")

    [/autoit]


    Oder

    Spoiler anzeigen
    [autoit]

    While Sleep(1000)
    If Not (@MIN <> 01 And @HOUR <> 15 And @MDAY <> 15 And @MON <> 5 And @YEAR <> 2010) Then Exitloop
    WEnd
    ;das was er dann tun soll z.b.
    MsgBox(0,"DATUM ERREICHT","Das angegebene datum wurde erreicht!")

    [/autoit]
  • GDI+ Bilder umfärben mit ColorMatrix

    • name22
    • 9. Mai 2010 um 01:33

    Mit diesem kleinen Tool lassen sich schnell und einfach kleinere Farbanpassungen an Bildern mittels ColorMatrix vornehmen.
    Die Slider auf der linken Seite der GUI reichen von -255 bis 255 und wirken sich auf das untere der beiden Bilder aus.

    Hotkeys:
    -Strg + S = Speichern: Speichert eine Datei unter dem gewünschten Dateinamen (Nur wenn als Dateityp png angegeben wird kann mit Transparenz gespeichert werden, sonst werden alle Transparenten Bereiche mit 0xFFFFFFFF ausgefüllt.)
    -Strg + O = Öffnen: Öffnet eine Bilddatei und lädt sie in das Programm

    Für das Script wird die GDIP.au3 benötigt (Anhang).
    Ich hoffe es gefällt euch :) .

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIP.au3>

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

    $hWnd = GUICreate(@ScriptName, 300, 400)
    $cSliderRed = GUICtrlCreateSlider(0, 20, 32, 355, 0x02)
    GUICtrlSetLimit(-1, 255, -255)
    GUICtrlSetData(-1, 0)
    $cSliderGreen = GUICtrlCreateSlider(32, 20, 32, 355, 0x02)
    GUICtrlSetLimit(-1, 255, -255)
    GUICtrlSetData(-1, 0)
    $cSliderBlue = GUICtrlCreateSlider(64, 20, 32, 355, 0x02)
    GUICtrlSetLimit(-1, 255, -255)
    GUICtrlSetData(-1, 0)
    GUICtrlCreateLabel("Rot Grün Blau", 12, 5)
    $cInputRed = GUICtrlCreateInput("0", 5, 380, 25, 18, 0x2000)
    $cInputGreen = GUICtrlCreateInput("0", 35, 380, 25, 18, 0x2000)
    $cInputBlue = GUICtrlCreateInput("0", 65, 380, 25, 18, 0x2000)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(200, 400, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 4)

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

    $hBrushBG = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)

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

    $hIA = _GDIPlus_ImageAttributesCreate()
    $tColorMatrix = _GDIPlus_ColorMatrixCreate()
    $pColorMatrix = DllStructGetPtr($tColorMatrix)

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

    $iOffRed = 0
    $iOffGreen = 0
    $iOffBlue = 0

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

    Global $hImage = "", $iWidth, $iHeight, $iImageWidthOld, $iImageHeightOld

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

    Do
    Until _Open()

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")

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

    HotKeySet("^s", "_Save")
    HotKeySet("^o", "_Open")

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _Exit()
    Case $cSliderRed
    $iOffRed = GUICtrlRead($cSliderRed) / 255
    GUICtrlSetData($cInputRed, GUICtrlRead($cSliderRed))
    _ReDraw()
    Case $cSliderGreen
    $iOffGreen = GUICtrlRead($cSliderGreen) / 255
    GUICtrlSetData($cInputGreen, GUICtrlRead($cSliderGreen))
    _ReDraw()
    Case $cSliderBlue
    $iOffBlue = GUICtrlRead($cSliderBlue) / 255
    GUICtrlSetData($cInputBlue, GUICtrlRead($cSliderBlue))
    _ReDraw()
    Case $cInputRed
    $iOffRed = GUICtrlRead($cInputRed) / 255
    GUICtrlSetData($cSliderRed, GUICtrlRead($cInputRed))
    _ReDraw()
    Case $cInputGreen
    $iOffGreen = GUICtrlRead($cInputGreen) / 255
    GUICtrlSetData($cSliderGreen, GUICtrlRead($cInputGreen))
    _ReDraw()
    Case $cInputBlue
    $iOffBlue = GUICtrlRead($cInputBlue) / 255
    GUICtrlSetData($cSliderBlue, GUICtrlRead($cInputBlue))
    _ReDraw()
    EndSwitch
    WEnd

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

    Func _ReDraw()
    _GDIPlus_ColorMatrixTranslate($tColorMatrix, $iOffRed, $iOffGreen, $iOffBlue)
    _GDIPlus_ImageAttributesSetColorMatrix($hIA, 0, True, $pColorMatrix)

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

    _GDIPlus_GraphicsClear($hBuffer, 0xFFA0A0A0)
    _GDIPlus_GraphicsDrawImageRect($hBuffer, $hImage, 100 - $iWidth / 2, 100 - $iHeight / 2, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawImageRectRectIA($hBuffer, $hImage, 0, 0, $iImageWidthOld, $iImageHeightOld, 100 - $iWidth / 2, 300 - $iHeight / 2, $iWidth, $iHeight, $hIA)
    WM_PAINT()

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

    _GDIPlus_ColorMatrixTranslate($tColorMatrix, $iOffRed * - 1, $iOffGreen * - 1, $iOffBlue * - 1)
    EndFunc ;==>_ReDraw

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

    Func _Open()
    $sFilePath = FileOpenDialog("Bild auswählen", @ScriptDir, "Bilder (*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.ico)")
    If @error Or $sFilePath = "" Then Return -1

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

    If $hImage <> "" Then _GDIPlus_ImageDispose($hImage)
    $hImage = _GDIPlus_ImageLoadFromFile($sFilePath)
    $iImageWidthOld = _GDIPlus_ImageGetWidth($hImage)
    $iImageHeightOld = _GDIPlus_ImageGetHeight($hImage)
    $iWidth = $iImageWidthOld
    $iHeight = $iImageHeightOld

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

    Select
    Case $iImageWidthOld > $iHeight
    If $iImageWidthOld >= 200 Then
    $iHeight = 200 * $iImageHeightOld / $iImageWidthOld
    $iWidth = 200
    EndIf
    Case Else
    If $iImageHeightOld >= 200 Then
    $iWidth = 200 * $iImageWidthOld / $iImageHeightOld
    $iHeight = 200
    EndIf
    EndSelect

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

    _ReDraw()
    Return 1
    EndFunc ;==>_Open

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

    Func _Save()
    $sFilePath = FileSaveDialog("Bild speichern unter", @ScriptDir, "Bilder (*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.ico)")
    If @error Or $sFilePath = "" Then Return -1
    $sExt = StringRight($sFilePath, StringLen($sFilePath) - StringInStr($sFilePath, "."))

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

    If $sExt = "jpg" Or $sExt = "jpeg" Or $sExt = "bmp" Or $sExt = "gif" Or $sExt = "ico" Or $sExt = "png" Then
    $hGraphicsTmp = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle(AutoItWinGetTitle()))
    $hBitmapTmp = _GDIPlus_BitmapCreateFromGraphics($iImageWidthOld, $iImageHeightOld, $hGraphicsTmp)
    $hBitmapGraphicsTmp = _GDIPlus_ImageGetGraphicsContext($hBitmapTmp)

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

    If $sExt <> "png" Then _GDIPlus_GraphicsClear($hBitmapGraphicsTmp, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawImageRectRectIA($hBitmapGraphicsTmp, $hImage, 0, 0, $iImageWidthOld, $iImageHeightOld, 0, 0, $iImageWidthOld, $iImageHeightOld, $hIA)
    _GDIPlus_ImageSaveToFile($hBitmapTmp, $sFilePath)

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

    _GDIPlus_GraphicsDispose($hGraphicsTmp)
    _GDIPlus_GraphicsDispose($hBitmapGraphicsTmp)
    _GDIPlus_BitmapDispose($hBitmapTmp)
    EndIf
    Return 1
    EndFunc ;==>_Save

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_BrushDispose($hBrushBG)
    _GDIPlus_ImageAttributesDispose($hIA)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

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

    Func WM_PAINT()
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 100, 0, 200, 400)
    EndFunc ;==>WM_PAINT

    [/autoit]

    Dateien

    Script + GDIP.au3.zip 96,63 kB – 253 Downloads
  • GDI+ Digitaluhr und Drag & Drop Alternative

    • name22
    • 8. Mai 2010 um 22:01
    Zitat

    nur das rechteck für die uhr sollte größer sein! aber sonst top arbeit!


    Das lässt sich im Script anpassen ;). Bei $iGUIWidth bzw. Height. Allerdings fängt es dann auf den meisten PC's an zu laggen... :S

  • punkt innerhalb einer ellipse

    • name22
    • 8. Mai 2010 um 19:08

    Ach verdammt stimmt ja :D .

    Spoiler anzeigen
    [autoit]

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

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

    $hWnd = GUICreate("EllipseTest", 400, 400)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 4)

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

    $iX = 100
    $iY = 100
    $iWidth = 50
    $iHeight = 60

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

    _GDIPlus_GraphicsDrawEllipse($hGraphic, $iX, $iY, $iWidth, $iHeight)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    If _PointIsInEllipse($nMsg[3], $nMsg[4], $iX + $iWidth / 2, $iY + $iHeight / 2, $iWidth, $iHeight) Then MsgBox(64, "Klick", "Innerhalb der Ellipse")
    EndSwitch
    WEnd

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

    Func _PointIsInEllipse($iX_Point, $iY_Point, $iXM_Ellipse, $iYM_Ellipse, $iWidth_Ellipse, $iHeight_Ellipse)
    If ($iX_Point - $iXM_Ellipse) ^ 2 / ($iWidth_Ellipse / 2) ^ 2 + ($iY_Point - $iYM_Ellipse) ^ 2 / ($iHeight_Ellipse / 2) ^ 2 <= 1 Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]


    So geht es. ^^

  • Editboxen

    • name22
    • 8. Mai 2010 um 17:00

    So müsste man allerdings die ControlIDs in Arrays abspeichern...
    Dein Script kann z.B. immer nur den Text der aktuellen beiden EditControls auslesen.

  • Editboxen

    • name22
    • 8. Mai 2010 um 16:40

    Das ist eine ziemlich umständlich umzusetzende und auch blöde Idee :P.
    Wozu das Rad neu erfinden? Mach doch ein Edit Feld und eine ListBox.

  • punkt innerhalb einer ellipse

    • name22
    • 8. Mai 2010 um 15:53

    So hab mal eine neue Funktion geschrieben :thumbup: .

    Spoiler anzeigen
    [autoit]

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

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

    $hWnd = GUICreate("EllipseTest", 400, 400)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 4)

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

    $iX = 100
    $iY = 100
    $iWidth = 50
    $iHeight = 60

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

    _GDIPlus_GraphicsDrawEllipse($hGraphic, $iX, $iY, $iWidth, $iHeight)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    If _PointIsInEllipse($nMsg[3], $nMsg[4], $iX + $iWidth / 2, $iY + $iHeight / 2, $iWidth, $iHeight) Then MsgBox(64, "Klick", "Innerhalb der Ellipse")
    EndSwitch
    WEnd

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

    Func _PointIsInEllipse($iX_Point, $iY_Point, $iXM_Ellipse, $iYM_Ellipse, $iWidth_Ellipse, $iHeight_Ellipse)
    Return 1 - Floor(($iX_Point - $iXM_Ellipse) ^ 2 / ($iWidth_Ellipse / 2) ^ 2 + ($iY_Point - $iYM_Ellipse) ^ 2 / ($iHeight_Ellipse / 2) ^ 2)
    EndFunc

    [/autoit]


    Sogar mit Beispiel :D.

    Edit: Neue Version! Die Funktion nimmt jetzt nur noch eine Zeile ein. :P

  • punkt innerhalb einer ellipse

    • name22
    • 8. Mai 2010 um 15:18

    Diese Funktionen hab ich mal geschrieben als ich mein Spiel "Targets" gebastelt habe. 8)

    Spoiler anzeigen
    [autoit]

    Func _PointIsInCircle($iX_Point, $iY_Point, $iX_Circle, $iY_Circle, $iRadius_Circle)
    $iDistPoints = _GetPointsDistance($iX_Point, $iY_Point, $iX_Circle, $iY_Circle)
    If ($iRadius_Circle > 0 And $iDistPoints < $iRadius_Circle) Or ($iRadius_Circle < 0 And $iDistPoints > $iRadius_Circle) Or $iDistPoints = 0 Then Return True
    Return False
    EndFunc ;==>_PointIsInCircle

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

    Func _CircleIsTouchingCircle($iX_Circle1, $iY_Circle1, $iX_Circle2, $iY_Circle2, $iRadius_Circle1, $iRadius_Circle2)
    $iDistCircles = _GetPointsDistance($iX_Circle1, $iY_Circle1, $iX_Circle2, $iY_Circle2)
    If $iDistCircles < $iRadius_Circle1 + $iRadius_Circle2 Then Return True
    Return False
    EndFunc ;==>_CircleIsTouchingCircle

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

    Func _CircleIsInCircle($iX_Circle1, $iY_Circle1, $iX_Circle2, $iY_Circle2, $iRadius_Circle1, $iRadius_Circle2)
    $iDistCircles = _GetPointsDistance($iX_Circle1, $iY_Circle1, $iX_Circle2, $iY_Circle2)
    If $iRadius_Circle1 > $iRadius_Circle2 And $iDistCircles <= $iRadius_Circle1 - $iRadius_Circle2 Then Return True
    If $iRadius_Circle1 < $iRadius_Circle2 And $iDistCircles <= $iRadius_Circle2 - $iRadius_Circle1 Then Return True
    Return False
    EndFunc ;==>_CircleIsInCircle

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

    Func _GetPointsDistance($iPointX1, $iPointY1, $iPointX2, $iPointY2)
    Return Sqrt(($iPointX1 - $iPointX2) ^ 2 + ($iPointY1 - $iPointY2) ^ 2)
    EndFunc ;==>_GetPointsDistance

    [/autoit]


    Aber mal im Ernst: Dafür muss man doch kein Mathematiker sein. :huh:

    Edit: Sehe gerade, dass du ja von einer Ellipse sprichst... Da greift meine Funktion leider nicht mehr :( .

  • brauche hilfe mit random

    • name22
    • 8. Mai 2010 um 13:34

    Das bedeutet du hast die Arraygröße überschritten ;). Ein Array hat einen Index von 0 bis zur Arraygröße -1!

  • GDI+ Digitaluhr und Drag & Drop Alternative

    • name22
    • 8. Mai 2010 um 13:22
    Zitat

    Hat leider nur den nebeneffekt, das es unschöne srünge gibt wenn man die Maus ausserhalb des Kastens bewegt (bei gedrückter Maustaste)


    Das könnte ich auch ändern und das habe ich auch schon in anderen Scripts hingekriegt, aber ich war einfach zu faul :whistling: .

  • AutoIt - Pixel Search

    • name22
    • 8. Mai 2010 um 13:05

    Wenn du mir sagst wofür du das brauchst helfe ich dir vielleicht ;).
    Und vorrausschauend wie ich bin :D, möchte ich dich gleich einmal auf die Forenregeln hinweisen.

  • Gutes Antiviren Programm?

    • name22
    • 8. Mai 2010 um 13:03
    Zitat

    Ich stimme dir doh zu und sage das die Werbung nervt und deswegen dein Blocker einen Sinn hat ^^


    Dann habe ich dich falsch verstanden. ^^

  • Problem bei Memory Coding - Skript

    • name22
    • 8. Mai 2010 um 13:01

    So etwas

    [autoit]

    _memoryRead

    [/autoit]

    ist hier aber in Zusammenhang mit Spielen nicht gern gesehen, und deswegen werde ich dich auch nicht unterstützen (vor allem aber weil man daraus ganz einfach einen Bot machen kann) :whistling:

    Zitat

    Daher denke ich, dass es nicht als Bot zählt


    Ich weiß nicht ob das in diesen

    Zitat

    5. Der Nutzer darf nur in der von JOYMAX gewollten Weise auf Software, Datenbank oder andere Daten, die auf von JOYMAX betriebenen Servern gespeichert werden, zugreifen oder zuzugreifen versuchen.


    Bereich fällt, aber ich wäre trotzdem vorsichtig und würde mich noch mal informieren ;).

  • Gutes Antiviren Programm?

    • name22
    • 8. Mai 2010 um 12:53
    Zitat

    intensivitätsstufen


    "Intensivität"... :whistling:

    Zitat

    Also bei mir klettert die Rechnerleistung sofort von 0% auf 1%
    Und die Auslagerungsdatei von 499Mb auf 501 Mb 8|


    OMG Du hast bestimmt einen Virus auf deinem PC!!11 :D

    Zitat

    Ps: Stimmt aber beim Zocken nervt die Werbung oft ^^


    Ähm

    Zitat

    Das besondere an der Process Methode ist in diesem Fall, dass der Prozess ein wenig braucht bis er das Fenster anzeigen kann (Internetseite laden). Deshalb beendet mein Script den Prozess schon bevor er das Fenster anzeigen kann und so kommt nicht während dem zocken/scripten plötzlich diese nervige Werbung in den Vordergrund :P.


    :rolleyes: Genau das verhindert doch meine Methode.

  • GDI+ Digitaluhr und Drag & Drop Alternative

    • name22
    • 8. Mai 2010 um 12:40

    Das hier habe ich aus Langeweile geschrieben :D. Das mit der Uhrzeit ist nicht wirklich besonders, aber das "Drag & Drop" System könnte vielleicht jemandem nützlich sein :).
    Das Script ist natürlich sehr anpassungsfähig.

    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode", 1)

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

    $iGUIWidth = 600 ;Breite der Grafik
    $iGUIHeight = 600 ;Höhe der Grafik

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

    $iX = Random(1, $iGUIWidth -100, 1) ;Startposition X
    $iY = Random(1, $iGUIHeight -50, 1) ;Startposition Y
    $vX = 0 ;Startbewegung X
    $vY = 0 ;Startbewegung Y
    $Resistance = 0.95 ;Stärke des "Luftwiederstands" (Wert zwischen 0 und 1, je geringer der Wert desto größer der Wiederstand).

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

    $hWnd = GUICreate("Test", @DesktopWidth + 2, @DesktopHeight + 2, -1, -1, $WS_POPUP)
    GUISetBkColor(0x000000) ;Hintergrundfarbe der GUI
    GUISetState(@SW_MAXIMIZE)
    GUISetState(@SW_SHOW)

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

    $iX_Graphic = @DesktopWidth / 2 - $iGUIWidth / 2 ;Platziert die Grafik in der Mitte der GUI
    $iY_Graphic = @DesktopHeight / 2 - $iGUIHeight / 2

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

    _GDIPlus_Startup()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)

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

    $hFormatTime = _GDIPlus_StringFormatCreate()
    $hFamilyTime = _GDIPlus_FontFamilyCreate("Arial") ;Hier kann der Name jeder beliebigen installierten Schriftart eingetragen werden
    $hFontTime = _GDIPlus_FontCreate($hFamilyTime, 20) ;Hier kann die Schriftgröße angepasst werden

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

    $sTime = @HOUR & ":" & @MIN & ":" & @SEC ;Man könnte natürlich auch einen Text o.Ä.verwenden
    $aInfo = _GDIPlus_GraphicsMeasureString($hBuffer, $sTime, $hFontTime, _GDIPlus_RectFCreate(), $hFormatTime) ;Misst die Größe des Strings
    $iWidth = DllStructGetData($aInfo[0], "width")
    $iHeight = DllStructGetData($aInfo[0], "height")

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

    $hBrushTime = _GDIPlus_BrushCreateSolid(0xFFFF0000) ;Hier kann die Schriftfarbe der Uhrzeit angepasst werden

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_ClickEvent")

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

    While Sleep(10)
    _ReDraw()
    WEnd

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

    Func _ReDraw()
    If $sTime <> @HOUR & ":" & @MIN & ":" & @SEC Then
    $sTime = @HOUR & ":" & @MIN & ":" & @SEC
    $aInfo = _GDIPlus_GraphicsMeasureString($hBuffer, $sTime, $hFontTime, _GDIPlus_RectFCreate(), $hFormatTime)
    $iWidth = DllStructGetData($aInfo[0], "width")
    $iHeight = DllStructGetData($aInfo[0], "height")
    EndIf
    If ($vX > 0 And $iX >= $iGUIWidth - $iWidth) Or ($vX < 0 And $iX <= 0) Then $vX *= -0.9
    If ($vY > 0 And $iY >= $iGUIHeight - $iHeight) Or ($vY < 0 And $iY <= 0) Then $vY *= -0.9
    $iX += $vX
    $iY += $vY
    $vX *= $Resistance
    $vY *= $Resistance
    _GDIPlus_GraphicsClear($hBuffer, 0xFF080808) ;Hintergrundfarbe der Grafik
    ;~ _GDIPlus_GraphicsFillRect($hBuffer, $iX, $iY, $iWidth, $iHeight)
    $tLayoutTime = _GDIPlus_RectFCreate(Floor($iX), Floor($iY), $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawStringEx($hBuffer, $sTime, $hFontTime, $tLayoutTime, $hFormatTime, $hBrushTime)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iX_Graphic, $iY_Graphic, $iGUIWidth, $iGUIHeight)
    EndFunc ;==>_ReDraw

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

    Func _ClickEvent()
    $aMousePos = GUIGetCursorInfo($hWnd)
    If _PtIsInRect($aMousePos[0] - $iX_Graphic, $aMousePos[1] - $iY_Graphic, $iX, $iY, $iWidth, $iHeight) Then
    $iDistX = $aMousePos[0] - $iX_Graphic - $iX
    $iDistY = $aMousePos[1] - $iY_Graphic - $iY
    While _IsPressed("01") ;Das hier ist für den "Drag & Drop" Effekt zuständig
    Sleep(10)
    $aMousePos = GUIGetCursorInfo($hWnd)
    $iDiffX = $aMousePos[0] - $iX_Graphic - $iX - $iDistX
    $iDiffY = $aMousePos[1] - $iY_Graphic - $iY - $iDistY
    $vX = $iDiffX / 8
    $vY = $iDiffY / 8
    _ReDraw()
    WEnd
    EndIf
    EndFunc ;==>_ClickEvent

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

    Func _PtIsInRect($iXPoint, $iYPoint, $iXRect, $iYRect, $iWidthRect, $iHeightRect) ;Überprüft ob ein Punkt innerhalb eine Rechtecks ist ;)
    If $iXPoint >= $iXRect And $iYPoint >= $iYRect And $iXPoint <= $iXRect + $iWidthRect And $iYPoint <= $iYRect + $iHeightRect Then Return 1
    Return 0
    EndFunc ;==>_PtIsInRect

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

    Func _Exit() ;Aufräumen...
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_FontDispose($hFontTime)
    _GDIPlus_FontFamilyDispose($hFamilyTime)
    _GDIPlus_StringFormatDispose($hFormatTime)
    _GDIPlus_BrushDispose($hBrushTime)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Gutes Antiviren Programm?

    • name22
    • 8. Mai 2010 um 12:08
    Zitat

    Ich behalte lieber meine Rechnerleistung (*geizig*) ^^


    Was für einen PC hast du? 8|
    Also bei mir bleibt selbst bei Sleep(10) der PC relativ unbeeindruckt...

    Zitat

    Ist es so viel Arbeit auf das Lustige rote kreuz zu klicken :P


    Das besondere an der Process Methode ist in diesem Fall, dass der Prozess ein wenig braucht bis er das Fenster anzeigen kann (Internetseite laden). Deshalb beendet mein Script den Prozess schon bevor er das Fenster anzeigen kann und so kommt nicht während dem zocken/scripten plötzlich diese nervige Werbung in den Vordergrund :P.

  • Website auslesen und in Prog. öffnen?

    • name22
    • 8. Mai 2010 um 11:36
    Zitat

    und bei mir gibt es keinen 2. Parameter, wird zumindest keiner angezeigt


    Dann hat mich die OnlineHilfe angelogen 8| .
    Was ergibt dieses Script bei dir wenn du es in Scite startest?

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    ConsoleWrite(_INetGetSource('http://www.autoitscript.com') & @CRLF)

    [/autoit]

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™