* getting desktop path
loShell = Createobject ('WScript.Shell')
lcDesktop = loShell.SpecialFolders('desktop')
lcXLS =CURDIR()+[Daily.xlsx]
If Empty(lcXLS)
Return
Endif
LOCAL oForm
oForm = CREATEOBJECT("Form")
WITH oForm
.HEIGHT = 550
.WIDTH = 360
.AUTOCENTER=.T.
.CAPTION=[Dashboard]
.MINBUTTON=.F.
.MAXBUTTON=.F.
.ALWAYSONTOP=.T.
.NEWOBJECT("ExcelObject","oleExcelObject") && Add OLE object
WITH .ExcelObject
.LEFT = 5
.TOP = 5
.WIDTH = .PARENT.WIDTH - 10
.HEIGHT = .PARENT.HEIGHT - 10
.VISIBLE = .T.
ENDWITH
.NEWOBJECT("Timer1","oTimer")
ENDWITH
oForm.SHOW(1) && form is modal, so no need for READ EVENTS
DEFINE CLASS oleExcelObject AS OLECONTROL
OLECLASS ="Excel.Sheet" && Server name
OLETYPEALLOWED = 0 && Linked
DOCUMENTFILE = lcXLS && This file should exist
ENDDEFINE
DEFINE CLASS oTimer AS TIMER
INTERVAL=5000
PROCEDURE TIMER
THIS.ENABLED = .F.
DO ScreenShot WITH this.Parent
this.enabled = .T.
ENDDEFINE
PROCEDURE ScreenShot
LPARAMETERS oForm
#INCLUDE gpImage.h
IF NOT "gpImage" $ SET("Procedure")
SET PROCEDURE TO gpImage ADDITIVE
ENDIF
GDIP = CREATEOBJECT("gpInit")
img = CREATEOBJECT("gpImage")
*img.Capture(THISFORM.HWND)
img.Capture(oForm.HWND)
LOCAL lnTitleHeight, lnLeftBorder, lnTopBorder
lnTitleHeight = SYSMETRIC(9)
lnLeftBorder = SYSMETRIC(3)
lnTopBorder = SYSMETRIC(4)
img.Crop(lnLeftBorder, lnTitleHeight + lnTopBorder, ;
img.ImageWidth - (lnLeftBorder * 2), ;
img.ImageHeight - (lnTitleHeight + (lnTopBorder * 2)))
img.SaveasBMP(lcDesktop+'\'+"Dash")
img = NULL
oForm.Release
ENDFUNC