diff --git a/.gitignore b/.gitignore index d9e5d30..d95f398 100644 --- a/.gitignore +++ b/.gitignore @@ -1,84 +1,72 @@ -# ---> Delphi -# Uncomment these types if you want even more clean repository. But be careful. -# It can make harm to an existing project source. Read explanations below. -# -# Resource files are binaries containing manifest, project icon and version info. -# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. -#*.res -# -# Type library file (binary). In old Delphi versions it should be stored. -# Since Delphi 2009 it is produced from .ridl file and can safely be ignored. -#*.tlb -# -# Diagram Portfolio file. Used by the diagram editor up to Delphi 7. -# Uncomment this if you are not using diagrams or use newer Delphi version. -#*.ddp -# -# Visual LiveBindings file. Added in Delphi XE2. -# Uncomment this if you are not using LiveBindings Designer. -#*.vlb -# -# Deployment Manager configuration file for your project. Added in Delphi XE2. -# Uncomment this if it is not mobile development and you do not use remote debug feature. -#*.deployproj -# -# C++ object files produced when C/C++ Output file generation is configured. -# Uncomment this if you are not using external objects (zlib library for example). -#*.obj -# - -# Default Delphi compiler directories -# Content of this directories are generated with each Compile/Construct of a project. -# Most of the time, files here have not there place in a code repository. -#Win32/ -#Win64/ -#OSX64/ -#OSXARM64/ -#Android/ -#Android64/ -#iOSDevice64/ -#Linux64/ - -# Delphi compiler-generated binaries (safe to delete) -*.exe -*.dll -*.bpl -*.bpi -*.dcp -*.so -*.apk -*.drc -*.map -*.dres -*.rsm -*.tds -*.dcu -*.lib -*.a -*.o -*.ocx - -# Delphi autogenerated files (duplicated info) -*.cfg -*.hpp -*Resource.rc - -# Delphi local files (user-specific info) -*.local -*.identcache -*.projdata -*.tvsconfig -*.dsk -*.dsv - -# Delphi history and backups __history/ __recovery/ +iOSDevice64/ +iOSDevice/ +iOSSimulator/ +Win32/ +Win64/ +Android/ +Osx32/ +OSX64/ +#Steve usual folders +_Extras/ +DB/ +Docs/ +Icons/ +Img/ +Tools/ +*~ +.DS_Store +# Delphi compiler-generated binaries (safe to delete) +!.vscode/extensions.json +!.vscode/launch.json +!.vscode/settings.json +!.vscode/tasks.json *.~* - -# Castalia statistics file (since XE7 Castalia is distributed with Delphi) +*.a +*.apk +*.bin +*.bpi +*.bpl +*.cbk +*.cfg +*.dcp +*.dcu +*.dll +*.drc +*.dres +*.dsk +*.dsv +*.exe +*.fb8lck # Lock files +*.fbl8 # Log files +*.fbpbrk # Breakpoints +*.fbpInf # Project info cache +*.ico +*.identcache +*.jpg +*.lib +*.local +*.map +*.o +*.ocx +*.png +*.projdata +*.res +*.rsm +*.save +*.so *.stat - -# Boss dependency manager vendor folder https://github.com/HashLoad/boss -modules/ - +*.tds +*.tlb +*.tvsconfig +*.user +*.vlb +.claude/settings.local.json +.DS_Store +.gitignore +.hg/ +.svn/ +.vscode/* +~$*.* +bin/ diff --git a/BatteryHealth.Artwork/Windows/AppIcon.icns b/BatteryHealth.Artwork/Windows/AppIcon.icns new file mode 100644 index 0000000..1d97a1d Binary files /dev/null and b/BatteryHealth.Artwork/Windows/AppIcon.icns differ diff --git a/BatteryHealth.dpr b/BatteryHealth.dpr new file mode 100644 index 0000000..0fc5107 --- /dev/null +++ b/BatteryHealth.dpr @@ -0,0 +1,14 @@ +program BatteryHealth; + +uses + Vcl.Forms, + main in 'main.pas' {frmMain}; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TfrmMain, frmMain); + Application.Run; +end. diff --git a/BatteryHealth.dproj b/BatteryHealth.dproj new file mode 100644 index 0000000..6dc0466 --- /dev/null +++ b/BatteryHealth.dproj @@ -0,0 +1,1191 @@ + + + {6B5250F9-78DF-4722-87AB-697436D5E3AC} + 20.4 + VCL + True + Debug + Win64 + BatteryHealth + 2097155 + Application + BatteryHealth.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + BatteryHealth + true + true + 1033 + CompanyName=TiltSoft;FileDescription=Battery Health;FileVersion=1.0.0.0;InternalName=batteryhealth;LegalCopyright=(C)2026-present TiltSoft;LegalTrademarks=;OriginalFilename=;ProgramID=com.tiltsoft.batteryhealth;ProductName=Battery Health;ProductVersion=1.0.0.0;Comments= + + + VCLTMSFNCMapsPkg;vclwinx;DataSnapServer;FMXTMSFNCUIPackPkg;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;VCLTMSFNCWebSocketPkg;FMXTMSFNCAppToolsPkg;IndyProtocols;VCLTMSFNCDashboardPackPkg;vclx;Skia.Package.RTL;VCLTMSFNCBloxPkg;dbxcds;vcledge;VCLTMSFNCGanttChartPkg;aurelius;frControlsLibrary37;FrameStandPackage_11_1;FmxTeeUI;DBXFirebirdDriver;FireDACSqliteDriver;DbxClientDriver;TMSScripter_IDE;soapmidas;TeeUI;dbexpress;inet;vcltouch;FireDACDBXDriver;fmxdae;tmsbcl;CustomIPTransport;FireDACMSSQLDriver;VCLTMSFNCCloudPackPkg;FMXfrCoreLibrary37;IndySystem;VCLTMSFNCBloxToolBarsPkg;frx37;TMSFNCCorePkg;ibxbindings;GalaxyTab4;VCLTMSFNCChartPkg;vclFireDAC;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;TMSAIStudioPkg;TMSScripter_VCL;bindcompdbx;rtl;FireDACMySQLDriver;remotedb;DBXSqliteDriver;FMXTMSFNCChartPkg;frxe37;DBXSybaseASEDriver;FMXTMSFNCBloxToolBarsPkg;vclimg;DataSnapFireDAC;inetdbxpress;FireDAC;VCLTMSFNCUIPackPkg;xmlrtl;ibxpress;dsnap;xdata;FireDACDb2Driver;DBXOracleDriver;DBXInformixDriver;FMXTMSFNCWebSocketPkg;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;FMXTMSFNCMapsPkg;DatasnapConnectorsFreePascal;LGWatchR;FMXTMSFNCCorePkg;TMSScripter_Memo;FMXTMSFNCChartGridAdapterPkg;frxDB37;emshosting;sparkle;FireDACCommonDriver;frCoreLibrary37;sphinx;IndyIPClient;FMXTMSFNCCloudPackPkg;bindcompvclwinx;emsedge;bindcompfmx;inetdb;ibmonitor;FireDACASADriver;Tee;vclactnband;FMXTMSFNCWXPackPkg;TMSMQTTPkg;fmxFireDAC;TMSScripter;FireDACInfxDriver;DBXMySQLDriver;VclSmp;DataSnapCommon;fmxase;FMXfrx37;DBXOdbcDriver;VCLTMSFNCWXPackPkg;dbrtl;FireDACOracleDriver;Skia.Package.FMX;VCLTMSFNCAppToolsPkg;CodeSiteExpressPkg;TeeDB;frLocalizationLibrary37;FireDACMSAccDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;FMXTMSFNCGanttChartPkg;VCLTMSFNCChartGridAdapterPkg;FMXfrxDB37;FireDACTDataDriver;Skia.Package.VCL;vcldb;FMXTMSFNCDashboardPackPkg;bindcomp;inetstn;IndyCore;RESTBackendComponents;TMSMQTTPkgDE;dmvcframeworkDT;FireDACADSDriver;RESTComponents;TMSAIStudioPkgExtensions;IndyIPServer;vcl;dsnapxml;adortl;dsnapcon;DataSnapClient;DataSnapProviderClient;TMSScripter_Legacy;FMXTMSFNCRESTClientEditorPkg;frGraphicsLibrary37;TMSFNCPushNotificationsPkg;DBXDb2Driver;FMXTMSFNCBloxPkg;VCLTMSFNCRESTClientEditorPkg;emsclientfiredac;FireDACPgDriver;FireDACDSDriver;FMXfrLocalizationLibrary37;dmvcframeworkRT;tethering;bindcompvcl;CloudService;DBXSybaseASADriver;VCLTMSFNCCorePkg;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(ProjectName).Artwork\Windows\AppIcon.ico + $(ProjectName).Artwork\Windows\AppIcon.icns + $(ProjectName).Artwork\Windows\Uwp_44.png + $(ProjectName).Artwork\Windows\Uwp_150.png + + + VCLTMSFNCMapsPkg;vclwinx;DataSnapServer;FMXTMSFNCUIPackPkg;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;VCLTMSFNCWebSocketPkg;FMXTMSFNCAppToolsPkg;IndyProtocols;VCLTMSFNCDashboardPackPkg;vclx;VCLTMSFNCBloxPkg;dbxcds;vcledge;VCLTMSFNCGanttChartPkg;aurelius;FrameStandPackage_11_1;FmxTeeUI;DBXFirebirdDriver;FireDACSqliteDriver;DbxClientDriver;TMSScripter_IDE;soapmidas;TeeUI;dbexpress;inet;vcltouch;FireDACDBXDriver;fmxdae;tmsbcl;CustomIPTransport;FireDACMSSQLDriver;VCLTMSFNCCloudPackPkg;IndySystem;VCLTMSFNCBloxToolBarsPkg;TMSFNCCorePkg;ibxbindings;VCLTMSFNCChartPkg;vclFireDAC;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;TMSAIStudioPkg;TMSScripter_VCL;bindcompdbx;rtl;FireDACMySQLDriver;remotedb;DBXSqliteDriver;FMXTMSFNCChartPkg;DBXSybaseASEDriver;FMXTMSFNCBloxToolBarsPkg;vclimg;DataSnapFireDAC;inetdbxpress;FireDAC;VCLTMSFNCUIPackPkg;xmlrtl;ibxpress;dsnap;xdata;FireDACDb2Driver;DBXOracleDriver;DBXInformixDriver;FMXTMSFNCWebSocketPkg;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;FMXTMSFNCMapsPkg;DatasnapConnectorsFreePascal;FMXTMSFNCCorePkg;TMSScripter_Memo;FMXTMSFNCChartGridAdapterPkg;emshosting;sparkle;FireDACCommonDriver;sphinx;IndyIPClient;FMXTMSFNCCloudPackPkg;bindcompvclwinx;emsedge;bindcompfmx;inetdb;ibmonitor;FireDACASADriver;Tee;vclactnband;FMXTMSFNCWXPackPkg;TMSMQTTPkg;fmxFireDAC;TMSScripter;FireDACInfxDriver;DBXMySQLDriver;VclSmp;DataSnapCommon;fmxase;DBXOdbcDriver;VCLTMSFNCWXPackPkg;dbrtl;FireDACOracleDriver;VCLTMSFNCAppToolsPkg;TeeDB;FireDACMSAccDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;FMXTMSFNCGanttChartPkg;VCLTMSFNCChartGridAdapterPkg;FireDACTDataDriver;Skia.Package.VCL;vcldb;FMXTMSFNCDashboardPackPkg;bindcomp;inetstn;IndyCore;RESTBackendComponents;TMSMQTTPkgDE;dmvcframeworkDT;FireDACADSDriver;RESTComponents;TMSAIStudioPkgExtensions;IndyIPServer;vcl;dsnapxml;adortl;dsnapcon;DataSnapClient;DataSnapProviderClient;TMSScripter_Legacy;FMXTMSFNCRESTClientEditorPkg;TMSFNCPushNotificationsPkg;DBXDb2Driver;FMXTMSFNCBloxPkg;VCLTMSFNCRESTClientEditorPkg;emsclientfiredac;FireDACPgDriver;FireDACDSDriver;dmvcframeworkRT;tethering;bindcompvcl;CloudService;DBXSybaseASADriver;VCLTMSFNCCorePkg;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + $(BDS)\bin\default_app.manifest + $(ProjectName).Artwork\Windows\AppIcon.ico + $(ProjectName).Artwork\Windows\AppIcon.icns + $(ProjectName).Artwork\Windows\Uwp_44.png + none + $(ProjectName).Artwork\Windows\Uwp_150.png + + + VCLTMSFNCMapsPkg;vclwinx;DataSnapServer;FMXTMSFNCUIPackPkg;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;VCLTMSFNCWebSocketPkg;FMXTMSFNCAppToolsPkg;IndyProtocols;VCLTMSFNCDashboardPackPkg;vclx;VCLTMSFNCBloxPkg;dbxcds;vcledge;VCLTMSFNCGanttChartPkg;aurelius;FmxTeeUI;DBXFirebirdDriver;FireDACSqliteDriver;DbxClientDriver;TMSScripter_IDE;soapmidas;TeeUI;dbexpress;inet;vcltouch;FireDACDBXDriver;fmxdae;tmsbcl;CustomIPTransport;FireDACMSSQLDriver;VCLTMSFNCCloudPackPkg;IndySystem;TMSFNCCorePkg;ibxbindings;VCLTMSFNCChartPkg;vclFireDAC;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;TMSScripter_VCL;bindcompdbx;rtl;FireDACMySQLDriver;remotedb;DBXSqliteDriver;FMXTMSFNCChartPkg;DBXSybaseASEDriver;vclimg;DataSnapFireDAC;inetdbxpress;FireDAC;VCLTMSFNCUIPackPkg;xmlrtl;ibxpress;dsnap;xdata;FireDACDb2Driver;DBXOracleDriver;DBXInformixDriver;FMXTMSFNCWebSocketPkg;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;FMXTMSFNCMapsPkg;DatasnapConnectorsFreePascal;FMXTMSFNCCorePkg;TMSScripter_Memo;emshosting;sparkle;FireDACCommonDriver;sphinx;IndyIPClient;FMXTMSFNCCloudPackPkg;bindcompvclwinx;emsedge;bindcompfmx;inetdb;ibmonitor;FireDACASADriver;Tee;vclactnband;FMXTMSFNCWXPackPkg;fmxFireDAC;TMSScripter;FireDACInfxDriver;DBXMySQLDriver;VclSmp;DataSnapCommon;fmxase;DBXOdbcDriver;VCLTMSFNCWXPackPkg;dbrtl;FireDACOracleDriver;VCLTMSFNCAppToolsPkg;TeeDB;FireDACMSAccDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;FMXTMSFNCGanttChartPkg;FireDACTDataDriver;Skia.Package.VCL;vcldb;FMXTMSFNCDashboardPackPkg;bindcomp;inetstn;IndyCore;RESTBackendComponents;FireDACADSDriver;RESTComponents;IndyIPServer;vcl;dsnapxml;adortl;dsnapcon;DataSnapClient;DataSnapProviderClient;TMSScripter_Legacy;TMSFNCPushNotificationsPkg;DBXDb2Driver;FMXTMSFNCBloxPkg;emsclientfiredac;FireDACPgDriver;FireDACDSDriver;tethering;bindcompvcl;CloudService;DBXSybaseASADriver;VCLTMSFNCCorePkg;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(ProjectName).Artwork\Windows\AppIcon.ico + $(ProjectName).Artwork\Windows\AppIcon.icns + $(ProjectName).Artwork\Windows\Uwp_44.png + $(ProjectName).Artwork\Windows\Uwp_150.png + + + DEBUG;$(DCC_Define) + true + false + true + true + true + true + true + + + false + PerMonitorV2 + true + 1033 + + + PerMonitorV2 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + + + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + PerMonitorV2 + + + PerMonitorV2 + + + PerMonitorV2 + + + + MainSource + + +
frmMain
+ dfm +
+ + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + Application + + + + BatteryHealth.dpr + + + File c:\radstudio\AddOns\TMS\TMS Setup\.tmssetup\build\bpl\Win32\TMSWEBCorePkgDE370.bpl not found + File c:\radstudio\AddOns\TMS\TMS Setup\.tmssetup\build\bpl\Win32\TMSWEBCorePkgLib370.bpl not found + File c:\radstudio\AddOns\TMS\TMS Setup\.tmssetup\build\bpl\Win32\TMSWEBCorePkg370.bpl not found + Embarcadero C++Builder Office 2000 Servers Package + Embarcadero C++Builder Office XP Servers Package + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + + + BatteryHealth.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + + True + True + True + + + 12 + + + + +
diff --git a/README.md b/README.md index 281d591..5a9df32 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ # TiltTeamPresence -Simulates a fake activity on your computer by moving the mouse back and forth by 2 pixels to keep the session active. \ No newline at end of file +Simulates a fake activity on your computer by moving the mouse back and forth by 2 pixels to keep the session active. + +Fake "battery health measurement" app that actually moves the mouse 2 pixels in each directions, back and forth. +This is to simulate an activity from the user so that apps like Teams don't switch the Green status to Orange one (present but inactive). + +It uses a thread so the user still can click the Stop button to regain control. + +Use it at your own risks and responsabilities. \ No newline at end of file diff --git a/main.dfm b/main.dfm new file mode 100644 index 0000000..7cab2be --- /dev/null +++ b/main.dfm @@ -0,0 +1,44 @@ +object frmMain: TfrmMain + Left = 0 + Top = 0 + Caption = 'Battery Monitor' + ClientHeight = 63 + ClientWidth = 292 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Segoe UI' + Font.Style = [] + OnCreate = FormCreate + TextHeight = 15 + object lblStatus: TLabel + Left = 181 + Top = 13 + Width = 100 + Height = 15 + AutoSize = False + end + object btnStart: TButton + Left = 8 + Top = 8 + Width = 113 + Height = 25 + Caption = 'Start Monitor' + TabOrder = 0 + OnClick = btnStartClick + end + object progressBar: TProgressBar + Left = 8 + Top = 39 + Width = 273 + Height = 17 + Enabled = False + Position = 87 + MarqueeInterval = 0 + BarColor = clLime + Step = 1 + State = pbsPaused + TabOrder = 1 + end +end diff --git a/main.pas b/main.pas new file mode 100644 index 0000000..f9cc56e --- /dev/null +++ b/main.pas @@ -0,0 +1,103 @@ +unit main; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls, System.Threading; + +type + TfrmMain = class(TForm) + btnStart: TButton; + progressBar: TProgressBar; + lblStatus: TLabel; + procedure FormCreate(Sender: TObject); + procedure btnStartClick(Sender: TObject); + + private + { Private declarations } + FMyTask : ITask ; + procedure startTask ; + procedure stopTask ; + public + { Public declarations } + end; + +var + frmMain : TfrmMain ; + direction : Boolean ; + runIt : Boolean ; + +implementation + +{$R *.dfm} + + + + +procedure TfrmMain.FormCreate(Sender: TObject); +begin + direction := False ; + runIt := False ; +end; + + + +procedure TfrmMain.btnStartClick(Sender: TObject); +begin + runIt := NOT runIt ; + if runIt then + begin + btnStart.Caption := 'Stop Monitoring' ; + startTask ; + end + else + begin + btnStart.Caption := 'Start Monitoring' ; + stopTask ; + end; +end; + + +procedure TfrmMain.startTask; +begin + lblStatus.Caption := 'Measuring' ; + // Create and start the background task + FMyTask := TTask.Run( + procedure + begin + // Check if the Stop button was clicked + if TTask.CurrentTask.Status = TTaskStatus.Canceled then + Exit; // Gracefully exit the thread loop + + + // Simulate work (e.g., 500ms step) + while runIt do + begin + + Sleep(1000); + + // 2. Safely update the UI progress + TThread.Queue(nil, + procedure + begin + direction := Not direction ; + if direction then + mouse.CursorPos := Point( mouse.CursorPos.X + 2, mouse.CursorPos.Y + 2 ) + else + mouse.CursorPos := Point( mouse.CursorPos.X - 2, mouse.CursorPos.Y - 2 ) + end); + end; + end); +end; + +procedure TfrmMain.stopTask; +begin + if (FMyTask <> nil ) then + begin + lblStatus.Caption := '' ; + FMyTask.Cancel ; + end; +end; + +end.