Ecco qui un inutility sbura... LOL
(c'è il bug che se metti la finestra fuori dallo schermo si cancellano i numeri ma per il resto è sburo)
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Dragon[ITA]
Script Function:
Segna l'ora >_>.
#ce ----------------------------------------------------------------------------
#include <gdiplus.au3>
#include <misc.au3>
#include <guiconstantsex.au3>
#include <staticconstants.au3>
#include <windowsconstants.au3>
$gui = GUICreate("TimeShift",250,250)
GUISetBkColor(0x000000,$gui)
GUISetState()
$Form1 = GUICreate("Colori", 162, 66, 291, 260)
$Graphic1 = GUICtrlCreateGraphic(8, 8, 41, 17, BitOR($SS_CENTER,$SS_RIGHT,$SS_BLACKRECT,$SS_GRAYRECT,$SS_WHITERECT,$SS_BLACKFRAME,$SS_NOTIFY))
GUICtrlSetBkColor(-1, 0xFF2222)
$Graphic2 = GUICtrlCreateGraphic(64, 8, 41, 17, BitOR($SS_CENTER,$SS_RIGHT,$SS_BLACKRECT,$SS_GRAYRECT,$SS_WHITERECT,$SS_BLACKFRAME,$SS_NOTIFY))
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Graphic3 = GUICtrlCreateGraphic(112, 8, 41, 17, BitOR($SS_CENTER,$SS_RIGHT,$SS_BLACKRECT,$SS_GRAYRECT,$SS_WHITERECT,$SS_BLACKFRAME,$SS_NOTIFY))
GUICtrlSetBkColor(-1, 0xFFFF00)
$Graphic4 = GUICtrlCreateGraphic(8, 40, 41, 17, BitOR($SS_CENTER,$SS_RIGHT,$SS_BLACKRECT,$SS_GRAYRECT,$SS_WHITERECT,$SS_BLACKFRAME,$SS_NOTIFY))
GUICtrlSetBkColor(-1, 0x00FF00)
$Graphic5 = GUICtrlCreateGraphic(64, 40, 41, 17, BitOR($SS_CENTER,$SS_RIGHT,$SS_BLACKRECT,$SS_GRAYRECT,$SS_WHITERECT,$SS_BLACKFRAME,$SS_NOTIFY))
GUICtrlSetBkColor(-1, 0xFF0000)
Global Const $PI = 3.1415926535897932384626433832795, $RAD = $PI/180
_GDIPlus_Startup()
$effg = _GDIPlus_GraphicsCreateFromHWND($gui)
$efft = TimerInit()
$effe = 0
_AntiAlias($effg,2)
$Family = _GDIPlus_FontFamilyCreate("Trebuchet MS")
$fontbrush1 = _GDIPlus_BrushCreateSolid(0xFF10FF10)
$fontbrush = _GDIPlus_BrushCreateSolid(0xFF000000)
$Format = _GDIPlus_StringFormatCreate ()
$Font = _GDIPlus_FontCreate ($Family, 10, 1)
$Layout1 = _GDIPlus_RectFCreate (171, 25, 140, 25)
$Layout2 = _GDIPlus_RectFCreate (210, 63, 140, 25)
$Layout3 = _GDIPlus_RectFCreate (226, 117, 250, 140)
$Layout4 = _GDIPlus_RectFCreate (210, 170, 140, 25)
$Layout5 = _GDIPlus_RectFCreate (170, 210, 140, 25)
$Layout6 = _GDIPlus_RectFCreate (116, 226, 115, 250)
$Layout7 = _GDIPlus_RectFCreate (59, 210, 140, 25)
$Layout8 = _GDIPlus_RectFCreate (22, 168, 140, 25)
$Layout9 = _GDIPlus_RectFCreate (9, 115, 25, 140)
$Layout10 = _GDIPlus_RectFCreate (22, 63, 25, 140)
$Layout11 = _GDIPlus_RectFCreate (59, 25, 25, 140)
$Layout12 = _GDIPlus_RectFCreate (115, 9, 140, 25)
_GDIPlus_GraphicsDrawStringEx ($effg, "01", $Font, $Layout1, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "02", $Font, $Layout2, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "03", $Font, $Layout3, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "04", $Font, $Layout4, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "05", $Font, $Layout5, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "06", $Font, $Layout6, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "07", $Font, $Layout7, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "08", $Font, $Layout8, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "09", $Font, $Layout9, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "10", $Font, $Layout10, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "11", $Font, $Layout11, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "12", $Font, $Layout12, $Format, $fontbrush1)
$blackrect = _GDIPlus_BrushCreateSolid(0x12000000)
$secpen1 = _GDIPlus_PenCreate(0xFFFF2222,1)
$secpen2 = _GDIPlus_PenCreate(0x12FF2222,1)
Dim $spoint[2] = [205,125]
$hourt = @HOUR
Dim $hpoint1[2] = [125,125+3],$hpoint2[2]=[125,125-3],$hpoint3[2]=[180,125]
$hourb1 = _GDIPlus_BrushCreateSolid(0xFFFFFF00)
$hourb2 = _GDIPlus_BrushCreateSolid(0x25FFFF00)
$mint = @MIN
$minb1 = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$minb2 = _GDIPlus_BrushCreateSolid(0x20FFFFFF)
Dim $mpoint1[2] = [125,125+3],$mpoint2[2]=[125,125-3],$mpoint3[2]=[195,125]
$sect = @SEC
$pen = _GDIPlus_PenCreate(0xFF00FF00,1)
$pen2 = _GDIPlus_PenCreate(0xFFFF0000,1)
Dim $Center[2] = [125,125]
Dim $tac1[2] = [30, 125], $tac2[2] = [36, 125], $tacangle = 0
$ts = _PointRotate(@SEC*(360/60)-90,$center,$spoint)
_GDIPlus_GraphicsDrawLine($effg,125,125,$ts[0],$ts[1],$secpen1)
_GDIPlus_GraphicsDrawEllipse($effg,115,115,20,20,$pen)
$tm1 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint1)
$tm2 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint2)
$tm3 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint3)
Dim $minpoint[4][2] = [[3,0],[$tm1[0],$tm1[1]],[$tm2[0],$tm2[1]],[$tm3[0],$tm3[1]]]
_GDIPlus_GraphicsFillPolygon($effg,$minpoint,$minb1)
$hm1 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint1)
$hm2 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint2)
$hm3 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint3)
Dim $hourpoint[4][2] = [[3,0],[$hm1[0],$hm1[1]],[$hm2[0],$hm2[1]],[$hm3[0],$hm3[1]]]
_GDIPlus_GraphicsFillPolygon($effg,$hourpoint,$hourb1)
$inc = 1
Dim $color[6] = [0,0xFF2222,0xFFFFFF,0xFFFF00,0x00FF00,0xFF0000]
While 1
Switch GUIGetMsg()
Case -3
If WinActive("Colori") Then
GUISetState(@SW_HIDE,$Form1)
Else
Exit
EndIf
Case -10
GUISetState(@SW_SHOW,$Form1)
Case $GUI_EVENT_RESTORE
_GDIPlus_GraphicsDrawStringEx ($effg, "01", $Font, $Layout1, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "02", $Font, $Layout2, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "03", $Font, $Layout3, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "04", $Font, $Layout4, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "05", $Font, $Layout5, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "06", $Font, $Layout6, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "07", $Font, $Layout7, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "08", $Font, $Layout8, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "09", $Font, $Layout9, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "10", $Font, $Layout10, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "11", $Font, $Layout11, $Format, $fontbrush1)
_GDIPlus_GraphicsDrawStringEx ($effg, "12", $Font, $Layout12, $Format, $fontbrush1)
Case $Graphic1
$color[1] = _ChooseColor(2,$color[1],2)
If $color[1] <> 0x000000 And $color[1] <> -1 Then
_GDIPlus_PenDispose($secpen1)
_GDIPlus_PenDispose($secpen2)
$secpen1 = _GDIPlus_PenCreate("0xFF"&StringTrimLeft($color[1],2),1)
$secpen2 = _GDIPlus_PenCreate("0x12"&StringTrimLeft($color[1],2),1)
GUICtrlSetBkColor($Graphic1,$color[1])
EndIf
Case $Graphic2
$color[2] = _ChooseColor(2,$color[2],2)
If $color[2] <> 0x000000 And $color[2] <> -1 Then
$minb1 = _GDIPlus_BrushCreateSolid("0xFF"&StringTrimLeft($color[2],2))
$minb2 = _GDIPlus_BrushCreateSolid("0x20"&StringTrimLeft($color[2],2))
GUICtrlSetBkColor($Graphic2,$color[2])
EndIf
Case $Graphic3
$color[3] = _ChooseColor(2,$color[3],2)
If $color[3] <> 0x000000 And $color[3] <> -1 Then
$hourb1 = _GDIPlus_BrushCreateSolid("0xFF"&StringTrimLeft($color[3],2))
$hourb2 = _GDIPlus_BrushCreateSolid("0x25"&StringTrimLeft($color[3],2))
GUICtrlSetBkColor($Graphic3,$color[3])
EndIf
Case $Graphic4
$color[4] = _ChooseColor(2,$color[4],2)
If $color[4] <> 0x000000 And $color[4] <> -1 Then
_GDIPlus_PenDispose($pen)
$pen = _GDIPlus_PenCreate("0xFF"&StringTrimLeft($color[4],2),1)
GUICtrlSetBkColor($Graphic4,$color[4])
EndIf
Case $Graphic5
$color[5] = _ChooseColor(2,$color[5],2)
If $color[5] <> 0x000000 And $color[5] <> -1 Then
_GDIPlus_PenDispose($pen2)
$pen2 = _GDIPlus_PenCreate("0xFF"&StringTrimLeft($color[5],2),1)
GUICtrlSetBkColor($Graphic5,$color[5])
EndIf
EndSwitch
If TimerDiff($efft) > 20 Then
$effe += 1
$efft = TimerInit()
_GDIPlus_GraphicsFillEllipse($effg,29,29,192,192,$blackrect)
$tacangle+=360/60
$tp1 = _PointRotate($tacangle,$center,$tac1)
$tp2 = _PointRotate($tacangle,$center,$tac2)
_GDIPlus_GraphicsDrawLine($effg,$tp1[0],$tp1[1],$tp2[0],$tp2[1],$pen)
_GDIPlus_GraphicsFillEllipse($effg,122,122,6,6,$minb1)
$tp1 = _PointRotate($tacangle+180,$center,$tac1)
$tp2 = _PointRotate($tacangle+180,$center,$tac2)
_GDIPlus_GraphicsDrawLine($effg,$tp1[0],$tp1[1],$tp2[0],$tp2[1],$pen2)
_GDIPlus_GraphicsDrawEllipse($effg,125-$effe/2,125-$effe/2,$effe,$effe,$pen)
If $effe = 30 Or $effe = 0 Then
$effe = 0
EndIf
_GDIPlus_GraphicsDrawLine($effg,125,125,$ts[0],$ts[1],$secpen2)
if $sect <> @SEC Then
$sect = @SEC
$ts = _PointRotate($sect*(360/60)-90,$center,$spoint)
_GDIPlus_GraphicsDrawLine($effg,125,125,$ts[0],$ts[1],$secpen1)
EndIf
_GDIPlus_GraphicsFillPolygon($effg,$minpoint,$minb2)
_GDIPlus_GraphicsFillPolygon($effg,$hourpoint,$hourb2)
if $mint <> @MIN Then
$mint = @MIN
$tm1 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint1)
$tm2 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint2)
$tm3 = _PointRotate(@MIN*(360/60)-90,$center,$mpoint3)
$minpoint[1][0] = $tm1[0]
$minpoint[1][1] = $tm1[1]
$minpoint[2][0] = $tm2[0]
$minpoint[2][1] = $tm2[1]
$minpoint[3][0] = $tm3[0]
$minpoint[3][1] = $tm3[1]
_GDIPlus_GraphicsFillPolygon($effg,$minpoint,$minb1)
$hm1 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint1)
$hm2 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint2)
$hm3 = _PointRotate((@HOUR+@MIN/60)*(360/12)-90,$center,$hpoint3)
$hourpoint[1][0] = $hm1[0]
$hourpoint[1][1] = $hm1[1]
$hourpoint[2][0] = $hm2[0]
$hourpoint[2][1] = $hm2[1]
$hourpoint[3][0] = $hm3[0]
$hourpoint[3][1] = $hm3[1]
_GDIPlus_GraphicsFillPolygon($effg,$hourpoint,$hourb1)
EndIf
EndIf
WEnd
_GDIPlus_Shutdown()
;#FUNCTION#==================================================================================================================
; Name...........: _PointRotate
; Description ...: Returns the new cordinates of a point.
; Syntax.........: _PointRotate($r_Angle, $c_center, $c_point)
; Parameters ....: $r_Angle - The angle to use
; $c_center - The array[2] containing center cordinates
; $c_point - The array[2] containing the point cordinates
; Return values .: Success - Returns an array[2] containing the cordinates of the new point.
;
; Author ........: Dragon[ITA]
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
;============================================================================================================================
Func _PointRotate($r_Angle, ByRef Const $c_center, ByRef Const $c_point)
Local $PI = 3.1415926535897932384626433832795
$dist = Sqrt(($c_point[0]-$c_center[0])^2+($c_point[1]-$c_center[1])^2)
$a_Angle = ACos(($c_point[0]-$c_center[0])/$dist)*180/$pi
If $c_point[1]-$c_center[1] < 0 Then
$a_Angle = -$a_Angle
EndIf
Local $c_pointf[2] = [Round($dist*Cos(($r_Angle+$a_Angle)*$pi/180))+$c_Center[0],Round($dist*Sin(($r_Angle+$a_Angle)*$pi/180))+$c_center[1]]
Return $c_pointf
EndFunc ;==>_PointRotate
Func _AntiAlias($hGraphics, $iMode)
Local $aResult
$aResult = DllCall($ghGDIPDll, "int", "GdipSetSmoothingMode", "hwnd", $hGraphics, "int", $iMode)
If @error Then Return SetError(@error, @extended, False)
Return SetError($aResult[0], 0, $aResult[0] = 0)
EndFunc ;==>_AntiAlias
EDIT: Dimenticavo... provate anche a premere destro sulla finestra x cambiare i colori...