From all of us at MJT we wish you season’s greetings and a wonderful start to 2019.
Here’s a fun little script with a message from Macro Scheduler. Open Macro Scheduler (download the trial if you don’t already have it), click New to create a new macro and paste this code in and hit run.
OnEvent>key_down,VK27,0,Quit SRT>Quit SetControlText>Sparkler,TEdit,1,Complete WaitWindowClosed>Sparkler Wait>1 DeleteFile>%temp_dir%\Sparkler.scp Exit>0 END>Quit DeleteFile>%temp_dir%\Sparkler.scp LabelToVar>SparkleScript,vScrData WriteLn>%temp_dir%\Sparkler.scp,wres,vScrData Dialog>Dialog1 object Dialog1: TForm BorderStyle = bsNone Caption = 'Happy Holidays' ClientHeight = 330 ClientWidth = 780 Color = 111111 Position = poScreenCenter object Panel3: TPanel Left = 0 Top = 0 Width = 780 Height = 330 BevelEdges = [] BevelOuter = bvNone Caption = 'And a Happy New Year' Color = 111111 Font.Charset = ANSI_CHARSET Font.Color = clRed Font.Height = -80 Font.Name = 'Vladimir Script' Font.Style = [] ParentFont = False Visible = False end object Panel2: TPanel Left = 0 Top = 0 Width = 780 Height = 330 BevelEdges = [] BevelOuter = bvNone Caption = 'Merry Christmas' Color = 111111 Font.Charset = ANSI_CHARSET Font.Color = clRed Font.Height = -96 Font.Name = 'Old English Text MT' Font.Style = [] ParentFont = False end object Panel1: TPanel Left = 0 Top = 0 Width = 780 Height = 330 BevelEdges = [] BevelOuter = bvNone Caption = '' Color = 111111 end end EndDialog>Dialog1 Show>Dialog1 ExecuteFile>%temp_dir%\Sparkler.scp Let>WIN_USEHANDLE=1 GetWindowPos>Dialog1.handle,Dia1X,Dia1Y Let>WIN_USEHANDLE=0 Add>Dia1Y,165 Let>StartY=Dia1Y Let>YFlag=1 Wait>0.3 Let>kk=0 Repeat>kk Add>kk,4 If>Dia1Y>{%StartY%+20} Let>YFlag=0 EndIf If>Dia1Y<{%StartY%-20} Let>YFlag=1 EndIf Add>Dia1X,4 If>YFlag=1 Add>Dia1Y,8 Else Sub>Dia1Y,8 EndIf Wait>0.025 If>Dia1X>40 SetControlText>Sparkler,TEdit,1,%Dia1X%;%Dia1Y% EndIf SetDialogProperty>Dialog1,Panel1,Left,kk Until>kk>750 Timer>Begin GetWindowPos>Sparkler,SparkX,SparkY Label>Loop If>{%Dia1X%<%SparkX%+150} Add>Dia1X,1 EndIf If>Dia1Y>StartY Sub>Dia1Y,1 EndIf If>Dia1YDia1Y,1 EndIf SetControlText>Sparkler,TEdit,1,%Dia1X%;%Dia1Y% Wait>0.01 Timer>Stop If>{%Stop%-%Begin%>5000} GoSub>Fade EndIf Goto>Loop SRT>Fade SetDialogProperty>Dialog1,,AlphaBlend,True Let>Fader=255 Repeat>Fader Sub>Fader,5 SetDialogProperty>Dialog1,,AlphaBlendValue,Fader Wait>0.1 Until>Fader<0 Let>Fader=255 SetDialogProperty>Dialog1,Panel3,Visible,True SetDialogProperty>Dialog1,Panel2,Visible,False SetDialogProperty>Dialog1,,AlphaBlendValue,Fader Wait>3 Timer>Begin GetScreenRes>ScreenX,ScreenY While>{%Stop%-%Begin%<10000} Timer>Stop Random>100,Pct Add>pct,1 Let>Dia1X={round(%ScreenX%*(%pct%/100))} Random>100,Pct Add>pct,1 Let>Dia1Y={round(%ScreenY%*(%pct%/100))} SetControlText>Sparkler,TEdit,1,%Dia1X%;%Dia1Y% Sub>Fader,5 SetDialogProperty>Dialog1,,AlphaBlendValue,Fader Wait>0.2 EndWhile SetControlText>Sparkler,TEdit,1,Complete WaitWindowClosed>Sparkler Wait>1 DeleteFile>%temp_dir%\Sparkler.scp Exit>0 END>Fade /* SparkleScript: Let>size=200 OnEvent>key_down,vk27,0,Quit SRT>Quit Exit>0 END>Quit Dialog>Dialog2 object Dialog2: TForm BorderStyle = bsNone Caption = 'Sparkler' Color = 1 TransparentColor = True TransparentColorValue = 1 object Panel1: TPanel Left = 0 Top = 0 BevelOuter = bvNone Caption = 'Panel1' Color = 1 TabOrder = 0 end object Edit1: TEdit Text = '-1000;-1000' Visible = False end end EndDialog>Dialog2 Let>WIN_USEHANDLE=1 MoveWindow>Dialog2.handle,-1000,-1000 Let>WIN_USEHANDLE=0 AddDialogHandler>Dialog2,,OnClose,Quit SetDialogProperty>Dialog2,,ClientHeight,size SetDialogProperty>Dialog2,,ClientWidth,size SetDialogProperty>Dialog2,Panel1,Height,size SetDialogProperty>Dialog2,Panel1,Width,size SetDialogProperty>Dialog2,,AlphaBlend,True SetDialogProperty>Dialog2,,AlphaBlendValue,0 Show>Dialog2 Let>halfSize={round(%size%/2)} Let>85Per={round(%halfSize%*0.85)} Let>15Per={round(%halfSize%*0.15)} Let>ang2=0 Let>kk=0 SetDialogProperty>Dialog2,,AlphaBlendValue,255 Repeat>kk GetDialogProperty>Dialog2,Edit1,Text,vPos If>vPos=Complete Let>kk=-100 Goto>Done EndIf Separate>vPos,;,Cur Sub>Cur_1,%halfSize% Sub>Cur_2,%halfSize% MoveWindow>Sparkler,Cur_1,Cur_2 Add>kk,1 Random>85Per,res Add>res,%15Per% Random>50,color Add>Color,45500 Random>90,ang2 Let>ang2=%ang2%*4 GoSub>Angle,Dialog2,Panel1,ang2,%halfSize%,%halfSize%,%halfSize%,4,1 Random>90,ang3 Let>ang3=%ang3%*4 GoSub>Angle,Dialog2,Panel1,ang3,%halfSize%,%halfSize%,%halfSize%,4,1 Random>90,ang Let>ang=%ang%*4 SetDialogProperty>Dialog2,Panel1,caption,space GoSub>Angle,Dialog2,Panel1,ang,%halfSize%,%halfSize%,res,2,color Label>Done Until>kk<0 //Angle Usage: //GoSub>Angle,Dialog,Object,Angle(in degrees),XStart,YStart,Length,PenSize,PenColor //Requires Drawline subroutine SRT>Angle Let>DegreeAngle=Angle_var_3 Let>XStart=Angle_var_4 Let>Ystart=Angle_var_5 Let>LineLength=Angle_var_6 Let>RadAngle={%DegreeAngle%*(pi/180)} Let>XEnd={trunc((cos(%RadAngle%))*%LineLength%)} Let>YEnd={trunc((sin(%RadAngle%))*%LineLength%)} Let>XEnd=%XEnd%+%XStart% Let>YEnd=%YEnd%+%YStart% GoSub>DrawLine,%Angle_var_1%.%Angle_var_2%.Handle,Angle_var_7,Angle_var_8,XStart,YStart,XEnd,YEnd END>Angle SRT>DrawLine LibFunc>user32,GetDC,HDC,%DrawLine_var_1% LibFunc>gdi32,CreatePen,Penres,0,%DrawLine_var_2%,%DrawLine_var_3% LibFunc>gdi32,SelectObject,SOPres,hdc,Penres Libfunc>gdi32,MoveToEx,mtres,HDC,%DrawLine_var_4%,%DrawLine_var_5%,0 LibFunc>gdi32,LineTo,ltres,hdc,%DrawLine_var_6%,%DrawLine_var_7% LibFunc>gdi32,DeleteObject,DOres,Penres LibFunc>user32,ReleaseDC,RDCres,HDC_1,HDC END>DrawLine */
Thanks to Dick Lockey for writing this little script (back in 2014).
Remember this?
Case Study: Macro Scheduler Saves 3600 Elf-Hours and Gets Presents Delivered On Time
The post Season’s Greetings! appeared first on Marcus' Macro Scheduler Blog.