Läuft solange, bis man ESC drückt und die Musik läuft ca. 3:45 Minuten bis sie wieder von vorne anfängt.
Eigentlich wollte ich was in D2D machen, aber ist wieder mal was in GDI+ geworden.
Gruß,
UEZ
Läuft solange, bis man ESC drückt und die Musik läuft ca. 3:45 Minuten bis sie wieder von vorne anfängt.
Eigentlich wollte ich was in D2D machen, aber ist wieder mal was in GDI+ geworden.
Gruß,
UEZ
Habt ihr mal das About Intro getestet? -> AutoIt Label oben links anklicken und About selektieren.
Ist die Geschwindigkeit ok oder eher eine "Diashow"?
DANKE für's Testen! ![]()
Gruß,
UEZ
Ich weiß, dass StringRegExpReplace anders arbeitet als StringRegExp, wie es BugFix bereits gesagt hat. Man muss bei StringRegExpReplace anders, und in meinen Augen ist das schwieriger als StringRegExp, denken.
Gruß,
UEZ
Vielen Dank für das Feedback!
Habe jetzt den Code aktualisiert! Bitte testen, ob's noch richtig funzt! Wenn nicht, bitte hier melden!
VIELEN DANK.
Gruß,
UEZ
Ich hatte sowas mal gebastelt in GDI+: Speedometer
Du kannst den Code als Ideengeber nutzen und eine UDF daraus basteln, wenn du willst.
Gruß,
UEZ
@AspirinJunkie, Andy: das habe ich nicht so verstanden und wie gesagt, geht es mir nicht immer darum, den einfachsten Weg zu nehmen, sondern sich mit Themen zu beschäfftigen, die man eigentlicht selten benutzt, um seinen Horizont zu erweitern - war einfach eine nette Übung sich mit allen nicht GDI+ Dingen zu befassen.
Ich habe auch für gewisse Zwecke auch Einzeiler geschrieben, wo einfach eine GUI nicht passt, z.B. Robocopy Aufgaben zwecks Datenmigrationen.
Mein Job hat leider kaum noch was mit "Technik" zu tun, so dass ich mir immer wieder was einfallen lassen muss, um noch ein bisschen am Ball zu bleiben.
Gruß,
UEZ
Mir ging es nicht darum einen Einzeiler zu schreiben, sondern mich mit den verschiedenen Programmierpraktiken auseinander zu setzen. Ein Einzeiler mag zwar seinen Zweck erfüllen, aber das ist mir zu "langweilig". ![]()
Gruß,
UEZ
DIESES PROJEKT IST EINGESTELLT!
Hier ein kleines Tool zum Synchronisieren der Sysinternal Tools.
[Blockierte Grafik: https://www.autoitscript.com/forum/uploads/monthly_11_2014/post-29844-0-88399400-1415371664.png]
[Blockierte Grafik: https://www.autoitscript.com/forum/uploads/monthly_11_2014/post-29844-0-79721500-1416166438.jpg][Blockierte Grafik: https://www.autoitscript.com/forum/uploads/monthly_11_2014/post-29844-0-66857000-1416166886.jpg]
Source Code: AutoIt Sysinternal Tools Synchronizer v0.99.6 build 2020-09-23 beta.7z
Nur die Exe: @MediaFire
AutoIt version 3.3.13.20 oder höher wird benötigt!
Das AutoIt Label oben links anklicken, um das Kontext Menü zu aktivieren!
Der Rest der Bedienung sollte fast selbsterklärend sein.
Gruß,
UEZ
Hmm, anscheinend mag GDI+ nicht den Font, denn mit diesem Font kann _GDIPlus_FontFamilyCreate() nicht erstellt werden. Ich habe den Code angepasst, so dass bei nicht unterstützten Fonts es nicht zum Absturz kommt.
Warum dieser Font nicht unterstützt wird, weiß ich nicht. Aber, wenn du willst und das Prinzip verstanden hast, kann du auch ein alternative Messfunktion erstellen bzw. z.B. die von Melba23 nehmen.
Gruß,
UEZ
Welche Schriftart hast du genommen?
Gruß,
UEZ
Ich verstehe nicht, warum das umständlich oder schwer sein soll!
Ist doch im Prinzip sehr einfach gehalten.
Gruß,
UEZ
Ich glaube, dass du seine Frage missverstanden hast.
Gruß,
UEZ
Hier mein Vorschlag:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ColorConstants.au3>
#include <GDIPlus.au3>
_GDIPlus_Startup()
#Region ### START Koda GUI section ### Form=
$sFontname = "Times New Roman"
$fFSize = 9.5
$Form1 = GUICreate("Beispiel", 284, 126, 192, 124)
$Radio1 = GUICtrlCreateRadio("Radio1", 16, 80, 70)
GUICtrlSetFont(-1, $fFSize, 400, 0, $sFontname)
GUICtrlSetBkColor($Radio1, $COLOR_RED)
$Input1 = GUICtrlCreateInput("", 32, 24, 121, 21)
$Button1 = GUICtrlCreateButton("OK", 160, 24, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_Shutdown()
Exit
Case $Button1
$Text = GUICtrlRead($Input1)
$aDim = _GDIPlus_MeasureString($Text, $sFontname, $fFSize)
ControlMove($Form1, "", $Radio1, 16, 80, $aDim[0] + 18)
GUICtrlSetData($Radio1, $Text)
EndSwitch
WEnd
Func _GDIPlus_MeasureString($sString, $sFont = "Arial", $fSize = 12, $iStyle = 0, $bRound = True)
Local $aSize[2]
Local Const $hFamily = _GDIPlus_FontFamilyCreate($sFont)
If Not $hFamily Then Return SetError(1, 0, $aSize)
Local Const $hFormat = _GDIPlus_StringFormatCreate()
Local Const $hFont = _GDIPlus_FontCreate($hFamily, $fSize, $iStyle)
Local Const $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
Local Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND(0)
Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
Switch $bRound
Case True
$aSize[0] = Round($aInfo[0].Width, 0)
$aSize[1] = Round($aInfo[0].Height, 0)
Case Else
$aSize[0] = $aInfo[0].Width
$aSize[1] = $aInfo[0].Height
EndSwitch
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_GraphicsDispose($hGraphic)
Return $aSize
EndFunc ;==>_GDIPlus_MeasureString
Gruß,
UEZ
Das habe ich mir auch gedacht, wollte aber nochmals nachfragen, damit das klar ist.
Gruß,
UEZ
Wie willst du bewerten, wenn die Farben zufällig erzeugt werden?
Gruß,
UEZ
Dann probiere mal dies:
#AutoIt3Wrapper_Version=b
#include <APIGdiConstants.au3>
#include <FontConstants.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WindowsConstants.au3>
; Create GUI
Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400)
Local $idPic = GUICtrlCreatePic('', 0, 0, 60, 60)
Local $hPic = GUICtrlGetHandle($idPic)
; Create bitmap
Local $hDC = _WinAPI_GetDC($hForm)
$hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, 60, 60)
$hBitmapDC = _WinAPI_CreateCompatibleDC($hDC)
$hObjOld = _WinAPI_SelectObject($hBitmapDC, $hBitmap)
; Draw objects
_WinAPI_GetSysColor($COLOR_3DFACE)
Local $hOldBrush = _WinAPI_SelectObject($hBitmapDC, _WinAPI_GetStockObject($DC_BRUSH))
Local $hOldPen = _WinAPI_SelectObject($hBitmapDC, _WinAPI_GetStockObject($DC_PEN))
_WinAPI_SetDCBrushColor($hBitmapDC, _WinAPI_GetSysColor($COLOR_3DFACE))
_WinAPI_ExtFloodFill($hBitmapDC, 0, 0, 0, $FLOODFILLSURFACE)
_WinAPI_SetDCBrushColor($hBitmapDC, 0x990404)
_WinAPI_SetDCPenColor($hBitmapDC, 0x990404)
$tRECT = _WinAPI_CreateRect(0, 0, 60, 60)
_WinAPI_RoundRect($hBitmapDC, $tRECT, 20, 20)
_WinAPI_BitBlt($hDC, 0, 0, 60, 60, $hBitmapDC, 0, 0, $SRCCOPY)
[/autoit] [autoit][/autoit] [autoit]_WinAPI_SelectObject($hBitmapDC, $hObjOld)
_WinAPI_ReleaseDC($hPic, $hDC)
; Set bitmap to control
_WinAPI_DeleteObject(_SendMessage($hPic, $STM_SETIMAGE, 0, $hBitmap))
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]Do
Until GUIGetMsg() = -3
$hBrush = _WinAPI_SelectObject($hDC, $hOldBrush)
_WinAPI_DeleteObject($hBrush)
$hPen = _WinAPI_SelectObject($hDC, $hOldPen)
_WinAPI_DeleteObject($hPen)
_WinAPI_DeleteDC($hBitmapDC)
_WinAPI_DeleteObject($hBitmap)
Gruß,
UEZ
Probiere mal die GDI+ Variante:
#include <GDIPlus.au3>
_GDIPlus_Startup()
Global Const $STM_SETIMAGE = 0x0172
; Create GUI
Local $hForm = GUICreate('Test', 400, 400)
Local $idPic = GUICtrlCreatePic('', 0, 0, 60, 60)
Local $hPic = GUICtrlGetHandle($idPic)
Local $hGDIBmp = _GDIPlus_CreateBitmapRoundCornerRect()
_WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hGDIBmp))
GUISetState(@SW_SHOW)
Do
Until GUIGetMsg() = -3
_WinAPI_DeleteObject($hGDIBmp)
_GDIPlus_Shutdown()
Func _GDIPlus_CreateBitmapRoundCornerRect($iW = 60, $iH = 60, $iColorBg = 0xFFFFFFFF, $iColorBorder = 0xFF000000, $iRadius = 8, $bGDIBmp = 1)
Local Const $iX = 0, $iY = 0, $iPenSize = 1
Local Const $iWidth = $iW - $iPenSize, $iHeight = $iH - $iPenSize
Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY)
_GDIPlus_GraphicsSetTextRenderingHint($hCtxt, $GDIP_TEXTRENDERINGHINT_ANTIALIASGRIDFIT)
Local Const $hPath = _GDIPlus_PathCreate()
_GDIPlus_PathAddArc($hPath, $iX + $iWidth - ($iRadius * 2), $iY, $iRadius * 2, $iRadius * 2, 270, 90)
_GDIPlus_PathAddArc($hPath, $iX + $iWidth - ($iRadius * 2), $iY + $iHeight - ($iRadius * 2), $iRadius * 2, $iRadius * 2, 0, 90)
_GDIPlus_PathAddArc($hPath, $iX, $iY + $iHeight - ($iRadius * 2), $iRadius * 2, $iRadius * 2, 90, 90)
_GDIPlus_PathAddArc($hPath, $iX, $iY, $iRadius * 2, $iRadius * 2, 180, 90)
_GDIPlus_PathCloseFigure($hPath)
Local Const $hBrush = _GDIPlus_BrushCreateSolid($iColorBg)
_GDIPlus_GraphicsFillPath($hCtxt, $hPath, $hBrush)
Local Const $hPen = _GDIPlus_PenCreate($iColorBorder, $iPenSize)
_GDIPlus_GraphicsDrawPath($hCtxt, $hPath, $hPen)
_GDIPlus_PathDispose($hPath)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hCtxt)
If $bGDIBmp Then
Local $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
Return $hGDIBmp
EndIf
Return $hBitmap
EndFunc
Gruß,
UEZ
Die Umfrage ist beendet und ein knappes Nein wurde gewählt. Was jetzt letztendlich genau implementiert wird, ist die Frage, die vielleicht von den Zuständigen beantwortet werden kann.
Danke für die rege Teilnahme und konstruktive Kritiken beider Seiten
. Mich haben die "Like" Gegner nicht überzeugen können, gleiches gilt anders herum.
Gruß,
UEZ
Zumindest ist es erfreulich, dass ein Meinungsstreit möglich ist, der auf Argumenten fußt und nicht mit wilden Emotionen betrieben wird.
Ich mache es kurz:
-> "Geliked".
Gruß,
UEZ
...
Andere mögen das anders sehen, ist auch ihr gutes Recht! Allerdings fehlt immer noch ein Statement der Sinnhaftigkeit. Nur weil "andere Websites" das auch können, ist das noch lange kein Grund dieses Feature auch einzuführen.
...
Wenn das andere Websiten das "Like" Feature eingeführt haben und es damit gut läuft und die Kritiken hier nicht gelebt werden, warum sollen wir das auch einführen?
Das klingt nach einem erzkonservativen Bayern Politiker frei nach dem Motto: "Never change a running system". Warum wurde überhaupt ein Update der Foren Software eingespielt (Sinnhaftigkeit)? Hier schlägt das deutsche Mentalität voll durch, z.B. Autobahn Maut, die nicht kommen sollte, aber jetzt doch kommt, aber viel zu kompliziert umgesetzt wird. Warum von den Nachbarn das erprobte Maut System nutzen? ![]()
Alle paar Jahre können, vielleicht sollten, wir uns ein wenig bewegen und gewisse Feature diskutieren, die ein neues Update der Forensoftware mit sich bringt. Wenn die Mehrheit aus welchen Gründen auch das nicht will, dann ist das ok.
Gruß,
UEZ