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

Beiträge von Ineluki

  • Suche eine (schnelle) IsInRect Funktion...

    • Ineluki
    • 12. Oktober 2010 um 19:22

    Wenn 0,025 Millisekunden schnell genug für dich sind, hier eine Func von Faweyr:

    Spoiler anzeigen
    [autoit]

    Func _RectCollision($iX1, $iY1, $iWidth1, $iHeight1, $iX2, $iY2, $iWidth2, $iHeight2)
    ;Author: Faweyr
    Return $iX1 + $iWidth1 > $iX2 And $iX1 < $iX2 + $iWidth2 And $iY1 + $iHeight1 > $iY2 And $iY1 < $iY2 + $iHeight2
    EndFunc ;==>_RectCollision

    [/autoit]
  • GUIGetMsg bei GDIPlus Grafik

    • Ineluki
    • 10. Oktober 2010 um 18:27

    Du musst die Koordinaten der Maus abfragen (MouseGetPos) und prüfen, ob die linke Maustaste gedrückt wurde (_IsPressed)

  • WeScriptTogether / Programmidee

    • Ineluki
    • 9. Oktober 2010 um 10:31

    Die Idee finde ich gut.
    Wenn das Highlighting in AutoIt zu schwer wäre, könnte man auch alles in eine Html Datei packen und das dann anzeigen lassen.

  • @SW_HIDE Fenster wieder in den Vordergrund bringen

    • Ineluki
    • 7. Oktober 2010 um 14:34
    [autoit]

    WinClose
    WinKill
    WinSetState
    ProcessClose

    [/autoit]
  • HotKeySet wieder deaktivieren?

    • Ineluki
    • 5. Oktober 2010 um 13:42
    [autoit]

    HotKeySet("{END}")

    [/autoit]
  • Suche eine GDi+ Profi, der mit erklären kann wie man ein Bitmap beschriftet.

    • Ineluki
    • 4. Oktober 2010 um 20:06

    Ich nehme mal an, dass das Bild nicht gespeichert werden kann, weil das alte noch existiert und nicht gelöscht werden kann, da es noch von GDI+ genutzt wird. Eine bessere Methode als eine temporäre Datei anzulegen fällt mir da leider nicht ein:

    Spoiler anzeigen
    [autoit]

    Func _DrawStringOnImage($iPath, $sString, $pX, $pY, $nPath="", $sFont="Arial", $sSize=12, $sFormat=0, $sColor=0xFF000000)
    If Not FileExists($iPath) Then Return SetError(1, "", 0)
    If $nPath="" Then $nPath=$iPath
    $filename=StringSplit($iPath, "\")
    FileCopy($iPath, @TempDir&"\"&$filename[$filename[0]])
    FileDelete($nPath)
    _GDIPlus_StartUp()
    $iBitmap=_GDIPlus_BitmapCreateFromFile(@TempDir&"\"&$filename[$filename[0]])
    $iGraphics=_GDIPlus_ImageGetGraphicsContext($iBitmap)
    $sBrush=_GDIPlus_BrushCreateSolid($sColor)
    $sFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $sSize, $sFormat)
    $sLayout = _GDIPlus_RectFCreate($pX, $pY)
    $sInfo = _GDIPlus_GraphicsMeasureString($iGraphics, $sString, $hFont, $sLayout, $sFormat)
    _GDIPlus_GraphicsDrawStringEx($iGraphics, $sString, $hFont, $sInfo[0], $sFormat, $sBrush)
    _GDIPlus_ImageSaveToFile($iBitmap, $nPath)
    _GDIPlus_BrushDispose($sBrush)
    _GDIPlus_StringFormatDispose($sFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_BitmapDispose($iBitmap)
    _GDIPlus_GraphicsDispose($iGraphics)
    _GDIPlus_Shutdown()
    FileDelete(@TempDir&"\"&$filename[$filename[0]])
    EndFunc

    [/autoit]
  • Suche eine GDi+ Profi, der mit erklären kann wie man ein Bitmap beschriftet.

    • Ineluki
    • 4. Oktober 2010 um 19:11

    Hab meins angepasst:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    $imagePath="test.jpg"
    $hGUI = GUICreate("_GUICtrlCreate_TextOnControl Test", 181, 78, 192, 124)
    $bPic = GUICtrlCreatePic($imagePath, 24, 24, 110, 25)
    GUISetState()
    _DrawStringOnImage($imagePath, "TEST", 30, 3)
    GUICtrlSetImage($bPic, $imagePath)
    While true
    Switch GuiGetMsg()
    Case -3
    Exit

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

    EndSwitch
    WEnd
    Func _DrawStringOnImage($iPath, $sString, $pX, $pY, $nPath="", $sFont="Arial", $sSize=12, $sFormat=0, $sColor=0xFF000000)
    If Not FileExists($iPath) Then Return SetError(1, "", 0)
    If $nPath="" Then $nPath=$iPath
    _GDIPlus_StartUp()
    $iBitmap=_GDIPlus_BitmapCreateFromFile($iPath)
    $iGraphics=_GDIPlus_ImageGetGraphicsContext($iBitmap)
    $sBrush=_GDIPlus_BrushCreateSolid($sColor)
    $sFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $sSize, $sFormat)
    $sLayout = _GDIPlus_RectFCreate($pX, $pY)
    $sInfo = _GDIPlus_GraphicsMeasureString($iGraphics, $sString, $hFont, $sLayout, $sFormat)
    _GDIPlus_GraphicsDrawStringEx($iGraphics, $sString, $hFont, $sInfo[0], $sFormat, $sBrush)
    _GDIPlus_ImageSaveToFile($iBitmap, $nPath)
    _GDIPlus_BrushDispose($sBrush)
    _GDIPlus_StringFormatDispose($sFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_BitmapDispose($iBitmap)
    _GDIPlus_GraphicsDispose($iGraphics)
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]
  • Suche eine GDi+ Profi, der mit erklären kann wie man ein Bitmap beschriftet.

    • Ineluki
    • 4. Oktober 2010 um 18:36

    Bin zwar kein Profi, aber so müsste es gehen:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    $hGUI = GUICreate("_GUICtrlCreate_TextOnControl Test", 181, 78, 192, 124)
    $bPic = GUICtrlCreatePic("test.jpg", 24, 24, 110, 25)
    GUISetState()
    _GUICtrlCreate_TextOnControl($hGUI, $bPic, "TEST", 30, 3)
    While true
    Switch GuiGetMsg()
    Case -3
    Exit

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

    EndSwitch
    WEnd
    Func _GUICtrlCreate_TextOnControl($hWnd, $Ctrl, $sString, $pX, $pY, $sFont="Arial", $sSize=12, $sFormat=0)
    If Not WinExists($hWnd) Then Return SetError(1, "", 0)
    $ctrlHandle=ControlGetHandle($hWnd, "", $Ctrl)
    If $ctrlHandle=0 Then Return SetError(2, "", 0)
    _GDIPlus_StartUp()
    $hGraphics=_GDIPlus_GraphicsCreateFromHWND($ctrlHandle)
    _GDIPlus_GraphicsDrawString($hGraphics, $sString, $pX, $pY, $sFont, $sSize, $sFormat)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]

    Edit: So kann man auch noch die Farbe wählen:

    Spoiler anzeigen
    [autoit]

    Func _GUICtrlCreate_TextOnControl($hWnd, $Ctrl, $sString, $pX, $pY, $sFont="Arial", $sSize=12, $sFormat=0, $sColor=0xFF000000)
    If Not WinExists($hWnd) Then Return SetError(1, "", 0)
    $ctrlHandle=ControlGetHandle($hWnd, "", $Ctrl)
    If $ctrlHandle=0 Then Return SetError(2, "", 0)
    _GDIPlus_StartUp()
    $hGraphics=_GDIPlus_GraphicsCreateFromHWND($ctrlHandle)
    $sBrush=_GDIPlus_BrushCreateSolid($sColor)
    $sFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $sSize, $sFormat)
    $sLayout = _GDIPlus_RectFCreate($pX, $pY)
    $sInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $sLayout, $sFormat)
    _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $sInfo[0], $sFormat, $sBrush)
    _GDIPlus_BrushDispose($sBrush)
    _GDIPlus_StringFormatDispose($sFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]
  • Button auf GUICtrlCreatePic geht nicht

    • Ineluki
    • 4. Oktober 2010 um 16:08

    Das kann ich dir leider nicht beantworten. Ich weiß nur, dass man zuerst das Bild erstellen muss, das disablen muss und dann die Controls.

  • Button auf GUICtrlCreatePic geht nicht

    • Ineluki
    • 4. Oktober 2010 um 16:04

    Füg mal bei deinem ersten Versuch nach Z. 6 noch das ein:

    [autoit]

    GUICtrlSetState(-1, $GUI_DISABLE)

    [/autoit]
  • Ok Abbrechen

    • Ineluki
    • 2. Oktober 2010 um 10:37

    Wenn du nichtmal weißt, wie eine If Abfrage aussieht, solltest du erstmal die Grundlagen lernen. Peethebee hat mal ein Buch geschrieben, einfach mal angucken...

  • Befehl in CMD eintragen und bestätigen

    • Ineluki
    • 2. Oktober 2010 um 10:36

    Ist ja auch kein Wunder. Du benutzt "C:\MeinOrdner" als WorkingDir. Du musst das schon mit in den Befehl packen, so wie peethebee es vorgeschlagen hat.

  • Ok Abbrechen

    • Ineluki
    • 2. Oktober 2010 um 10:31

    Du musst auch schon abfragen, ob Cancel gedrückt wurde und darauf reagieren...

  • Ok Abbrechen

    • Ineluki
    • 2. Oktober 2010 um 10:14

    Du erstellst die Variable in einer If Abfrage, wenn die If Bedingung aber nicht wahr ist, wird die Variable auch nicht erstellt. Daher kann auch kein Wert daraus ausgelesen werden.

  • StringRegExp Array auf Index 0 setzen

    • Ineluki
    • 29. September 2010 um 14:54
    [autoit]

    IsArray

    [/autoit]
  • _IsPressed/HotKeySet: Maus-Scrollrad

    • Ineluki
    • 29. September 2010 um 13:54
    [autoit]

    #include <WindowsConstants.au3>
    GUIRegisterMsg($WM_MOUSEWHEEL, "FuncName")

    [/autoit]
  • Pilotentest

    • Ineluki
    • 26. September 2010 um 10:40

    Wenn es zu einfach ist, einfach die Geschwindigkeit ändern.
    Edit: Hab jetzt eine neue Version oben, jetzt sollte das Problem mit der Maus außerhalb vom Rechteck gelöst sein.

  • Bildgröße auslesen

    • Ineluki
    • 25. September 2010 um 19:10

    Hilfe --> Funktionsreferenz --> GUI --> GUI-Control Veränderung
    Da findest du alle Funktionen, um ein Control zu verändern, unteranderem auch

    [autoit]

    GUICtrlSetPos

    [/autoit]
  • Pilotentest

    • Ineluki
    • 25. September 2010 um 14:57

    Der Stein folgt der Maus nicht, wenn die Maus außerhalb ist, da man sonst überall hinklicken könnte und dann ist da der Stein. Ich weiß leider nicht, wie ich das lösen kann :(

  • Warum geht das so nicht?

    • Ineluki
    • 25. September 2010 um 11:36

    Du musst noch Z. 24-29 entfernen und die Position von den Control anpassen. Außerdem sollte das Dim an den Anfang unter die includes. Z.17 ist unnötig, da du das gleiche schon in Z.30 tust. Z.18 - 23 sollte unter Z. 30
    Insgesamt sollte das ganze am Ende ungefähr so aussehen:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Sound.au3>
    Dim $array[4]=["ID-String der Sounddatei", "VBR Länge Korrekturfaktor", "VBR Zeit Korrekturfaktor", "Sound ID Marker"] ; Array erstellen und Werte zuweisen
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 800, 600, 192, 124)
    $Button2 = GUICtrlCreateButton("Play", 0, 40, 169, 41, $WS_GROUP)
    $Button1 = GUICtrlCreateButton(".MP3 Datei öffnen", 0, 0, 169, 41, $WS_GROUP)
    GUICtrlCreateGroup("Info Daten", 600, 0, 185, 225)
    $idstring = GUICtrlCreateLabel("", 610, 15, 244, 17) ; 1. label in der Gruppe erstellen
    $vbrl = GUICtrlCreateLabel("", 610, 45, 244, 17) ; 2. Label in der Gruppe erstellen
    $vbrt = GUICtrlCreateLabel("", 610, 60, 244, 17); 3. Label in der Gruppe erstellen
    $soundid = GUICtrlCreateLabel("", 610, 75, 244, 17); 4. Label in der Gruppe erstellen
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schließen
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    If Ubound($array)=4 Then ; Prüfen ob das Array 4 Felder hat
    GUICtrlSetData($idstring, $array[0]) ; Den Wert vom ersten Label ändern
    GUICtrlSetData($vbrl, $array[1]) ; Den Wert vom zweiten Label ändern
    GUICtrlSetData($vbrt, $array[2]) ; Den Wert vom dritten Label ändern
    GUICtrlSetData($soundid, $array[3]) ; Den Wert vom vierten Label ändern
    EndIf
    $sound = _SoundOpen (@ScriptDir & "\3d.mp3")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _SoundOpen(@ScriptDir & "\3d.mp3")
    Case $Button2
    _SoundPlay($sound, 1)
    EndSwitch
    WEnd

    [/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™