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

Beiträge von Morrison

  • Namen für 2D Array generieren?!?

    • Morrison
    • 11. März 2013 um 21:07

    Also ich hab jetzt das 2D Array in einem 1D Array gespeichert...

    ReDim $a_Votings[UBound($a_Votings) + 1]
    $a_Votings[$VotingCounts] = $aVotes

    ...aber ich seh keine Namen wenn ich

    _ArrayDisplay($a_Votings)

    aufrufe!

    Ich kann zwar die 2D Arrays Abrufen..

    _ArrayDisplay($a_Votings[1])

    aber die Array-Liste von $a_Votings ist leer!?!

  • Namen für 2D Array generieren?!?

    • Morrison
    • 11. März 2013 um 20:41

    Ähm, versteh ich nicht ganz!

    $ArrayArray[$Count] = $Array => Subscript used with non-Array variable.

  • Namen für 2D Array generieren?!?

    • Morrison
    • 11. März 2013 um 03:53

    Hi!

    Vllt. steh ich im Moment bissl aufm Schlauch, aber:

    Ich habe ein Script das bei jedem Durchlauf ein 2D Array erstellt. Wie bewerkstellige ich es nun das bei jedem Durchlauf die Daten nicht überschrieben werden?

    Mit $neu = $alt schaff ich ja auch nur ein Loop!

    Am liebsten wären mir die Loops am Ende des Arraynamens, aber wie erstelle ich ein Arraynamen für nen 2D Array mit fortlaufender Zahl am Ende?

    Auch $string & $Count wollte AutoIt nicht..

    Jemand nen Tipp??

    Oder das 2D Array zu einem anderem Array hinzufügen, aber die 2D Arrays sind alle unterschiedlich groß!

  • Webseite aktualisieren / GUI streamen / GET?

    • Morrison
    • 11. März 2013 um 03:44

    Huh, naja,

    also ich wollte ja ein Fragebogen, das per AutoIt erstellt wird, auf der Webseite in Echtzeit posten.

    Da ich jetzt nicht die gesamte GUI mit dem Fragebogen auf die Webseite streamen konnte hab ich jetzt die Webseite so umgebaut das die Daten aus der SQL kommen wenn ich im script andere Fragebögen anzeige.

    Also praktisch mit php und bissl Layout ne SQL Tabelle auf der Webseite!

  • StringRegExp / String splitten

    • Morrison
    • 9. März 2013 um 11:01

    Wow, kewl..Danke für Eure Hilfe!

    Die Lösung von funkey sieht mir am einfachsten und sichersten aus und funzt bis jetzt auch perfekt!

    Danke! :rock:

  • StringRegExp / String splitten

    • Morrison
    • 9. März 2013 um 07:19

    Hallo,

    ein Thema was mir leider garnicht liegt ist dieses StringRegExp! Ich hoffe da auf Eure Hilfe!

    Also ich habe ein String der wie folgt aussieht: ID1 F2 A3

    Ich habe immer ein ID, ein F, und ein A gefolgt von irgendeiner Zahl. ich möchte nun diese drei Werte aufsplitten, auch wenn die Zahlen mal in den Zehnerbereich gehen. Am besten wäre es wenn es dann zum Schluss so aussieht:

    $string[0] = ID1
    $string[1] = F2
    $string[2] = A3

    Es sind nicht immer Leerzeichen dazwischen und Groß-/Kleinschreibung kann variieren!

    Wäre schön wenn da jemand nen Code für mich hätte!

  • Bestimmten bereich in extra fenster anzeigen

    • Morrison
    • 8. März 2013 um 23:27

    Hi!

    Hab Dir mal nen kleines Proggi rausgesucht..vllt. bringts Dich weiter!

    Anbei jetzt auch das Ausgangsscript von SEuBo! :thumbup:

    Dateien

    Lupe.au3 12,62 kB – 331 Downloads SEuBoLupe.au3 1,85 kB – 324 Downloads
  • Webseite aktualisieren / GUI streamen / GET?

    • Morrison
    • 8. März 2013 um 21:38

    Also habs jetzt per php und SQL gelöst!

  • _gdiplus_graphicsdrawimagerect / .png vergrössern unscharf

    • Morrison
    • 8. März 2013 um 21:15

    UEZ:

    Perfekt!! :rock:

  • _gdiplus_graphicsdrawimagerect / .png vergrössern unscharf

    • Morrison
    • 8. März 2013 um 02:03

    Hallo,

    ich habe mehrere .png Bilddateien. Wenn ich diese nun mit _gdiplus_graphicsdrawimagerect auf meiner GUI einfüge erhalte ich ein unscharfes Bild! Wenn ich das .png in der Windows-Fotoanzeige mit dem Mausrad vergrössere bleibt es jedoch scharf! Wie kann ich die unschärfe umgehen/unterbinden??

    Hat vllt. jemand nen Code für eine frei skalierbare GUI mit Bild???

  • Weiter bestehendes Problem mit IE@Create

    • Morrison
    • 24. Februar 2013 um 02:29

    Grüsse!

    Musste bei mir nur ein Sleep(8000) nach _IEFormSubmit($oForm, 0) einfügen, also solange warten bis ich komplett weitergeleitet wurde und die Seite fertig geladen war und dann den eingetragenen Wert mit _IEFormSubmit($oForm1) gesendet! Des funzt!

  • HotKeySet reagiert nicht immer

    • Morrison
    • 24. Februar 2013 um 01:46

    Hi!

    Vllt. nen Sleep() im Script?

  • PHP und _INetGetSource / Variable übergeben / kein "+" mehr in SQL Tabelle / htmlentities??urlencode??

    • Morrison
    • 20. Februar 2013 um 12:44

    Danke! Funzt super!! :rock:

  • PHP und _INetGetSource / Variable übergeben / kein "+" mehr in SQL Tabelle / htmlentities??urlencode??

    • Morrison
    • 20. Februar 2013 um 11:16

    Hallo!

    Ich möchte per PHP und _INetGetSource eine Variable in ein .php Script übergeben und in eine SQL Tabelle einfügen, was auch klappt.

    Jedoch steht in der SQL Tabelle dann der Wert ohne Plus "+" Zeichen! Hab jetzt was von htmlentities und urlencode gelesen, jedoch keine Ahnung wie ich das anwenden soll! Hat jemand nen Tip für mich?

    $aFragenArray[$i][0] = "Wieviel sind 3 + 5 ?"

    _INetGetSource("http://sqlserver/conn2.php?Fragen=" & $aFragenArray[$i][0])

    Und in der Tabelle steht dann nur "Wieviel sind 3 5 ?"

  • Webseite aktualisieren / GUI streamen / GET?

    • Morrison
    • 11. Februar 2013 um 15:08

    Hallo!

    Ich habe eine selbst erstelle Webseite. Auf dieser möchte ich nun eine GUI aus meinem AutoIt-Script streamen! Also was ich in dieser GUI änder oder schreibe etc. ändert sich simultan auch auf der Webseite!

    Gibts dafür Beispiele oder nen Tutorial?

    Das generelle Verbinden zum Server ist mir bekannt, jedoch nicht was ich in dem Server-Script als "Platzhalter" nehmen soll. Reicht da eine Schleife mit "Get"-Variable?

    Bin dankbar für jeden Ansatz oder Lösung!

    Die Webseite ist in HTML und PHP. Es reicht auch wenn bei nem klick die GUI gesendet wird! Da ich mich mit HTML bzw. PHP nicht so gut auskenne reicht glaub ich nen Ansatz in diese Richtung!

    Glaube am ehesten geht das über SQL, oder? Diese Möglichkeit habe ich auch!!

  • GUI immer im Vordergrund! $WS_EX_TOPMOST funzt nicht!

    • Morrison
    • 3. Februar 2013 um 02:18

    WinSetOnTop("", "", 1) oder WinSetOnTop($hGUI, "", 1) = keine Änderung!

    Iss auch des gleiche wie $WS_EX_TOPMOST.

    Edit:

    Habs jetzt erstmal so gelöst.

    Mit $WM_Paint Funktion und die "dummy"-GUI als parent vom Main-GUI.

    Bin weiter für bessere Lösung offen! Hab auch schon überlegt vllt. gleich aufn Monitor zu zeichnen, DC(0), hat da vllt. jemand was in der Schublade?

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <Array.au3>
    Global $hGraphics, $hBackBuffer, $hBrush, $hBitmap
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    _GDIPlus_Startup()
    #Region ### START Koda GUI section ### Form=C:\Users\IBM\Desktop\Projekte\Heikos_Klicker\Autoit_Abstimmung\Abstimmung.kxf
    $Form1_1 = GUICreate("Form1", 712, 650, -1, -1);, Default, Default, $hDummy)
    $Group1 = GUICtrlCreateGroup("", 6, 0, 697, 58, BitOR($GUI_SS_DEFAULT_GROUP,$WS_CLIPSIBLINGS))
    $bStart = GUICtrlCreateButton("Start", 210, 12, 59, 37)
    $bDEL = GUICtrlCreateButton("DEL", 282, 12, 59, 37)
    $bCorrAntw = GUICtrlCreateButton("ANTW", 354, 12, 59, 37)
    $bDiagr = GUICtrlCreateButton("diagramm", 426, 12, 59, 37)
    $bPreQS = GUICtrlCreateButton("prev", 510, 12, 71, 37)
    $bNextQS = GUICtrlCreateButton("next", 618, 12, 71, 37)
    $Button7 = GUICtrlCreateButton("Button1", 117, 12, 71, 37)
    $inpTime = GUICtrlCreateInput("inpTime", 60, 20, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
    $lTime = GUICtrlCreateLabel("Zeit:", 18, 19, 36, 21, BitOR($SS_CENTER,$SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 10, 800, 4, "MS Sans Serif")
    $lQS = GUICtrlCreateLabel("1/1", 582, 19, 36, 23, BitOR($SS_CENTER,$SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateLabel("Vorlesungs-ID für Abstimmung:", 6, 614, 296, 29)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $Label2 = GUICtrlCreateLabel("Stimmen", 618, 614, 86, 29)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $lVotes = GUICtrlCreateLabel("0", 593, 614, 16, 29, $SS_CENTER)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $lID = GUICtrlCreateLabel("222", 306, 614, 40, 29, $SS_CENTER)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $gOUT = GUICtrlCreateGraphic(30, 72, 650, 320, BitOR($GUI_SS_DEFAULT_GRAPHIC,$SS_CENTER,$SS_CENTERIMAGE))
    $hDummy = GUICreate("", Default, Default, Default,Default, Default,Default, $Form1_1) ; Dummy GUI, damit richtiges nicht in Taskleiste auftaucht.
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, BitOr($WS_POPUP, $DS_SETFOREGROUND), BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST, $WS_EX_TRANSPARENT),$hDummy)
    GUISetState(@SW_SHOW, $Form1_1)
    GUISetState(@SW_SHOWNOACTIVATE, $hGUI)
    GUISetBkColor(0xABCDEF, $hGUI)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255)
    ;Graphic-Objekt, Pinsel und Backbuffer erstellen und GUI anzeigen
    $hBrush = _GDIPlus_BrushCreateSolid (0xEE000000)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(@DesktopWidth, @DesktopHeight, $hGraphics)
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
    _Zentriere("Fischer, wie tief ist das Wasser?", @DesktopWidth / 2, @DesktopHeight / 5, 36, "Arial", $hBackbuffer)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_ImageDispose($hBackBuffer)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_Shutdown()
    Exit
    Case $bDEL
    ;~ $aList = WinList()
    ;~ _ArrayDisplay($aList)
    EndSwitch
    WEnd
    Func _Zentriere($sString, $iX, $iY, $fSize, $sFont, $hGfxBuffer)
    Local $aResult = DllCall($ghGDIPDLL, "uint", "GdipCreatePath", "int", 0, "int*", 0)
    Local $hPath = $aResult[2]
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    Local $tBounds = _GDIPlus_RectFCreate(0, 0, 0, 0)
    DllCall($ghGDIPDLL, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sString, "int", -1, "hwnd", $hFamily, "int", 0, "float", $fSize, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDLL, "uint", "GdipGetPathWorldBounds", "hwnd", $hPath, "ptr", DllStructGetPtr($tBounds), "hwnd", 0, "hwnd", 0)
    Local $fRectX = DllStructGetData($tBounds, "X")
    Local $fRectY = DllStructGetData($tBounds, "Y")
    Local $fRectW = DllStructGetData($tBounds, "Width")
    Local $fRectH = DllStructGetData($tBounds, "Height")
    Local $hMatrix = _GDIPlus_MatrixCreate()
    ;Rechteck um Schrift zeichnen
    $hBrush1 = _GDIPlus_BrushCreateSolid (0xFFEFEFEF)
    _GDIPlus_GraphicsFillRect($hGfxBuffer, (@DesktopWidth / 2) - ($fRectW / 2) - 2, (@DesktopHeight / 5) - ($fRectH / 2) - 2, $fRectW + 6, $fRectH + 4, $hBrush1)
    _GDIPlus_MatrixTranslate($hMatrix, -$fRectX - $fRectW / 2 + $iX, -$fRectY - $fRectH / 2 + $iY)
    DllCall($ghGDIPDLL, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)
    _GDIPlus_MatrixDispose($hMatrix)
    DllCall($ghGDIPDLL, "uint", "GdipFillPath", "hwnd", $hGfxBuffer, "hwnd", $hBrush, "hwnd", $hPath)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    DllCall($ghGDIPDLL, "uint", "GdipDeletePath", "hwnd", $hPath)
    EndFunc ;==>_Zentriere

    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    ;_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
    ;_Zentriere("Fischer, wie tief ist das Wasser?", @DesktopWidth / 2, @DesktopHeight / 5, 36, "Arial", $hBackbuffer)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
    ;_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Bei defokussiertem Main-GUI und maximieren eines anderen Fensters ist die Vordergrund-Schrift wieder weg!

  • GUI immer im Vordergrund! $WS_EX_TOPMOST funzt nicht!

    • Morrison
    • 3. Februar 2013 um 02:15

    Hab eben das "parent" von "Form1" auch aufs "dummy" gesetzt, funzt zwar besser aber die GUI wird übermalt! mpf

  • GUI immer im Vordergrund! $WS_EX_TOPMOST funzt nicht!

    • Morrison
    • 3. Februar 2013 um 01:42

    Hallo!

    Ich habe eine GUI die ich mit Buttons belegt hab..nun habe ich eine andere GUI mit der ich auf den Bildschirm zeichne. Diese soll immer im Vordergrund sein! Soweit funzt das auch, nur wenn ich paarmal aufn Desktop klicke und wieder ins GUI zurück dann ist die Zeichnen-GUI im Hintergrund!

    Wie kann ich das Zeichnen-GUI IMMER im Vordergrund halten? ..oder wieder inn Vordergrund bringen/zeichnen wenn es nicht im Vordergrund ist?
    Gibts da sowas wie ne Z-Depth-Reihenfolge oder sowas?

    P.S.: Hab Windows 7, Aero deaktiviert


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <Array.au3>
    _GDIPlus_Startup()
    ;Transparente GUI erstellen
    $hDummy = GUICreate("") ; Dummy GUI, damit richtiges nicht in Taskleiste auftaucht.
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, BitOr($WS_CLIPSIBLINGS, $WS_POPUP), BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST,$WS_EX_TRANSPARENT),$hDummy)
    GUISetBkColor(0xABCDEF, $hGUI)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255)
    ;Graphic-Objekt, Pinsel und Backbuffer erstellen und GUI anzeigen
    $hBrush = _GDIPlus_BrushCreateSolid (0xEE000000)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(@DesktopWidth, @DesktopHeight, $hGraphics)
    $hBackBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
    GUISetState(@SW_SHOW);NOACTIVATE)
    _Zentriere("Fischer, wie tief ist das Wasser?", @DesktopWidth / 2, @DesktopHeight / 5, 36, "Arial", $hBackbuffer)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)

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

    #Region ### START Koda GUI section ### Form=C:\Users\IBM\Desktop\Projekte\Heikos_Klicker\Autoit_Abstimmung\Abstimmung.kxf
    $Form1_1 = GUICreate("Form1", 712, 650, -1, -1)
    $Group1 = GUICtrlCreateGroup("", 6, 0, 697, 58, BitOR($GUI_SS_DEFAULT_GROUP,$WS_CLIPSIBLINGS))
    $bStart = GUICtrlCreateButton("Start", 210, 12, 59, 37)
    $bDEL = GUICtrlCreateButton("DEL", 282, 12, 59, 37)
    $bCorrAntw = GUICtrlCreateButton("ANTW", 354, 12, 59, 37)
    $bDiagr = GUICtrlCreateButton("diagramm", 426, 12, 59, 37)
    $bPreQS = GUICtrlCreateButton("prev", 510, 12, 71, 37)
    $bNextQS = GUICtrlCreateButton("next", 618, 12, 71, 37)
    $Button7 = GUICtrlCreateButton("Button1", 117, 12, 71, 37)
    $inpTime = GUICtrlCreateInput("inpTime", 60, 20, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
    $lTime = GUICtrlCreateLabel("Zeit:", 18, 19, 36, 21, BitOR($SS_CENTER,$SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 10, 800, 4, "MS Sans Serif")
    $lQS = GUICtrlCreateLabel("1/1", 582, 19, 36, 23, BitOR($SS_CENTER,$SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateLabel("Vorlesungs-ID für Abstimmung:", 6, 614, 296, 29)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $Label2 = GUICtrlCreateLabel("Stimmen", 618, 614, 86, 29)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $lVotes = GUICtrlCreateLabel("0", 593, 614, 16, 29, $SS_CENTER)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $lID = GUICtrlCreateLabel("222", 306, 614, 40, 29, $SS_CENTER)
    GUICtrlSetFont(-1, 14, 800, 0, "@Arial Unicode MS")
    $gOUT = GUICtrlCreateGraphic(30, 72, 650, 320, BitOR($GUI_SS_DEFAULT_GRAPHIC,$SS_CENTER,$SS_CENTERIMAGE))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;$hWnd = GUICtrlGetHandle($gOUT)
    ;_GDIPlus_Startup ()
    ;~ $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
    ;~ $hBrush = _GDIPlus_BrushCreateSolid (0xcf000000)
    ;~ $hBitmap = _GDIPlus_BitmapCreateFromGraphics(650, 320, $hGraphic)
    ;~ $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    ;~ _GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
    ;~ ;Zeichne Fragen und Antworten auf GraphicHWND
    ;~ _Zentriere("Fischer, wie tief ist das Wasser?", 325, 40, 36, "Arial", $hBackbuffer) ;_Zentriere($STRING, $X, $Y, $Grösse, $Schrift, BackBuffer/Graphic)
    ;~ _Zentriere("Frage 1" & @CRLF & "Frage 2" & @crlf & "Frage 3" & @CRLF & "Frage 4", 325, 180, 28, "Arial", $hBackbuffer)
    ;~ _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_ImageDispose($hBackBuffer)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_Shutdown()
    Exit
    Case $bDEL
    $aList = WinList()
    _ArrayDisplay($aList)
    EndSwitch
    WEnd

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

    Func _Zentriere($sString, $iX, $iY, $fSize, $sFont, $hGfxBuffer)
    Local $aResult = DllCall($ghGDIPDLL, "uint", "GdipCreatePath", "int", 0, "int*", 0)
    Local $hPath = $aResult[2]
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    Local $tBounds = _GDIPlus_RectFCreate(0, 0, 0, 0)
    DllCall($ghGDIPDLL, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sString, "int", -1, "hwnd", $hFamily, "int", 0, "float", $fSize, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDLL, "uint", "GdipGetPathWorldBounds", "hwnd", $hPath, "ptr", DllStructGetPtr($tBounds), "hwnd", 0, "hwnd", 0)
    Local $fRectX = DllStructGetData($tBounds, "X")
    Local $fRectY = DllStructGetData($tBounds, "Y")
    Local $fRectW = DllStructGetData($tBounds, "Width")
    Local $fRectH = DllStructGetData($tBounds, "Height")
    Local $hMatrix = _GDIPlus_MatrixCreate()
    ;Rechteck um Schrift zeichnen
    $hBrush1 = _GDIPlus_BrushCreateSolid (0xFFEFEFEF)
    _GDIPlus_GraphicsFillRect($hGfxBuffer, (@DesktopWidth / 2) - ($fRectW / 2) - 2, (@DesktopHeight / 5) - ($fRectH / 2) - 2, $fRectW + 6, $fRectH + 4, $hBrush1)
    _GDIPlus_MatrixTranslate($hMatrix, -$fRectX - $fRectW / 2 + $iX, -$fRectY - $fRectH / 2 + $iY)
    DllCall($ghGDIPDLL, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)
    _GDIPlus_MatrixDispose($hMatrix)
    DllCall($ghGDIPDLL, "uint", "GdipFillPath", "hwnd", $hGfxBuffer, "hwnd", $hBrush, "hwnd", $hPath)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    DllCall($ghGDIPDLL, "uint", "GdipDeletePath", "hwnd", $hPath)
    EndFunc ;==>_Zentriere

    [/autoit]
  • LockBits & "Edit-Control" - Bitmap-Handle?

    • Morrison
    • 4. September 2012 um 20:38

    Ich zeige in dem (oder über dem) Edit einzelne Schriftzeichen an die ich nun "analysieren" will, also Schwarzwerte auslesen.

    Und wollte gerne das schnelle LockBits nutzen.

  • LockBits & "Edit-Control" - Bitmap-Handle?

    • Morrison
    • 4. September 2012 um 20:30

    Also in dem Edit wird mir schon Schrift angezeigt!

    Ich benutze "_GDIPlus_GraphicsCreateFromHWND" auf des Edit und zeichne dann mit "_GDIPlus_GraphicsDrawImage" ein Zeichen.

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hEdit)
    $hBmpBuffer = _GDIPlus_BitmapCreateFromGraphics(150, 150, $hGraphics)
    $hGfxBuffer = _GDIPlus_ImageGetGraphicsContext($hBmpBuffer)
    $hPen = _GDIPlus_PenCreate(0xFF00FF00)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxBuffer, 0)
    _GDIPlus_GraphicsClear($hGfxBuffer, 0xFFFFFFFF)
    _Zentriere($rInput, 70, 70, $sgr, $sTrim, $hGfxBuffer)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBmpBuffer, 0, 0)
    _release()

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™