Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Start Button Clock + cpu and memory usage (mod of Laszlo's)


  • Please log in to reply
24 replies to this topic
evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
Start Button Clock with cpu and memory usage bars.
- default positions/size for Windows XP classic appearance (old style windows look).

Download: Start Button Clock with cpu and memory usage bars.

This is a mod of Laszlo's script:
Taskbar Clock/Calendar with Processor and Memory Load bars
http://www.autohotke...opic.php?t=6290

I customised Laszlo's script, to cover the start button, which I posted in that thread but improved a couple of things (for my purposes) and thought it was worth posting for anyone else.

My old version is on the left and the new one is on the right (2x real size):
Posted Image


The main changes were:
- Creating seperate gui's for the progress bars because this allows them to be clicked/show tooltips.
- Tweaking the layout and cutting off all the border pixels of the bars to maximise the usable space (increased bar height and text size).

biotech
  • Members
  • 172 posts
  • Last active: Jan 08 2011 03:16 PM
  • Joined: 23 Feb 2006
nice, really nice

Babis
  • Members
  • 69 posts
  • Last active: Aug 26 2015 09:31 AM
  • Joined: 08 Dec 2005
Hi. I am using another version of cpu usage by evl, which is as follows:


; cpu load by evl
#Persistent
SetTimer, CheckCPULoad, 1000
return

CheckCPULoad:
  SetFormat, float, 02
  ControlSetText, Button1, % " " GetCPULoad() " %", ahk_class Shell_TrayWnd
return

GetCPULoad()
{
  Global
  SetBatchLines, -1
  IdleTime0 = %IdleTime%  ; Save previous values
  Tick0 = %Tick%
  DllCall("kernel32.dll\GetSystemTimes", "uint",&IdleTicks, "uint",0, "uint",0)
  IdleTime := *(&IdleTicks)
  Loop 7                  ; Ticks when Windows was idle
    IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index )
  Tick := A_TickCount     ; Ticks all together
  load := 100 - 0.01*(IdleTime - IdleTime0)/(Tick - Tick0)
  Return, load
} 
; end cpu load by evl

Can you help me have the numbers displayed on red, when cpu usage exceeds 60%?

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
Actually that code came from Laszlo's version of this script originally.

The memory retrieved is a percentage (it's possible to get the total ram and work out the amount used, someone posted a script that retrieved such information).

DllCall("kernel32.dll\GlobalMemoryStatus", "uint",&memorystatus)
mem := *( &memorystatus + 4 ) ; last byte is enough, mem = 0..100
msgbox, %mem%


garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
here something in a wooden case....
The Device Patented Process Indicating Apparatus features two analog dials, a test tube that glows from dim to bright, and a red incandescent lamp....
http://www.processin...m/features.html :D

it seems not to be only CPU/Memory indicator...



Q: The Device is absolutely beautiful. I want one. What is it?
A: That reaction alone is most of the point of The Device. Additionally, aside from being a beautiful and inscrutable showpiece, the device has a real function.


Q: Oh?
A: Yes. When you plug The Device into your PC, it comes to life. The dials move, the Ethereal Glowing Tube glows at various intensities, the red light on top turns on and off. All of these features can be configured to display anything from stock quotes to the health of your Sims or the status of your Ebay auction.

Red Incandescent Lamp
* Simple on/off indicator glows with a warm, reassuring (or perhaps distressing) light.
* Can be made to blink in extreme circumstances. This is appropriate when, for instance, your web server has gone down, or when you need to reload in your videogame.

Digger
  • Members
  • 31 posts
  • Last active: Feb 08 2009 01:41 AM
  • Joined: 13 Sep 2006
Can you make this showing CPU temp ?

Veovis
  • Members
  • 389 posts
  • Last active: Mar 17 2009 12:24 AM
  • Joined: 13 Feb 2006
Actual i think it might be possible. Many new laptops have ways to monitor cpu temperature. As long as you can get it to show up in the console (or in a hidden window) then its possible. I seem to remember seeing temp in WMIC once...

K my laptop has no temperature reading, so i cant test this, but if you run cmd then type WMIC (press enter and wait) then type "temperature" it will give you a bunch of stuff. See if anything helps. (type "/?" at any level for more options of course!)


@ garry

Wow! that devince thing is way cool! I signed the guest book, i cant wait till it comes out!
Posted Image
"Power can be given overnight, but responsibility must be taught. Long years go into its making."

Digger
  • Members
  • 31 posts
  • Last active: Feb 08 2009 01:41 AM
  • Joined: 13 Sep 2006
no theres no temperature thingy in there
there must be away to get it to work how do the moniting apps use to get the temp or they read it from the bios


wmic:root\cli>/?

[global switches]

The following global switches are available:
/NAMESPACE Path for the namespace the alias operate against.
/ROLE Path for the role containing the alias definitions.
/NODE Servers the alias will operate against.
/IMPLEVEL Client impersonation level.
/AUTHLEVEL Client authentication level.
/LOCALE Language id the client should use.
/PRIVILEGES Enable or disable all privileges.
/TRACE Outputs debugging information to stderr.
/RECORD Logs all input commands and output.
/INTERACTIVE Sets or resets the interactive mode.
/FAILFAST Sets or resets the FailFast mode.
/USER User to be used during the session.
/PASSWORD Password to be used for session login.
/OUTPUT Specifies the mode for output redirection.
/APPEND Specifies the mode for output redirection.
/AGGREGATE Sets or resets aggregate mode.
/AUTHORITY Specifies the for the connection.
/?[:] Usage information.

Press any key to continue, or press the ESCAPE key to stop

Veovis
  • Members
  • 389 posts
  • Last active: Mar 17 2009 12:24 AM
  • Joined: 13 Feb 2006

Press any key to continue, or press the ESCAPE key to stop


That was only the first part of the list
Posted Image
"Power can be given overnight, but responsibility must be taught. Long years go into its making."

Digger
  • Members
  • 31 posts
  • Last active: Feb 08 2009 01:41 AM
  • Joined: 13 Sep 2006
Doh!! yeah its there but it dont work :(
Anyway heres the full thing

wmic:root\cli>/?

[global switches]

The following global switches are available:
/NAMESPACE Path for the namespace the alias operate against.
/ROLE Path for the role containing the alias definitions.
/NODE Servers the alias will operate against.
/IMPLEVEL Client impersonation level.
/AUTHLEVEL Client authentication level.
/LOCALE Language id the client should use.
/PRIVILEGES Enable or disable all privileges.
/TRACE Outputs debugging information to stderr.
/RECORD Logs all input commands and output.
/INTERACTIVE Sets or resets the interactive mode.
/FAILFAST Sets or resets the FailFast mode.
/USER User to be used during the session.
/PASSWORD Password to be used for session login.
/OUTPUT Specifies the mode for output redirection.
/APPEND Specifies the mode for output redirection.
/AGGREGATE Sets or resets aggregate mode.
/AUTHORITY Specifies the for the connection.
/?[:] Usage information.

For more information on a specific global switch, type: switch-name /?


The following alias/es are available in the current role:
ALIAS - Access to the aliases available on the local system
BASEBOARD - Base board (also known as a motherboard or system board) management.
BIOS - Basic input/output services (BIOS) management.
BOOTCONFIG - Boot configuration management.
CDROM - CD-ROM management.
COMPUTERSYSTEM - Computer system management.
CPU - CPU management.
CSPRODUCT - Computer system product information from SMBIOS.
DATAFILE - DataFile Management.
DCOMAPP - DCOM Application management.
DESKTOP - User's Desktop management.
DESKTOPMONITOR - Desktop Monitor management.
DEVICEMEMORYADDRESS - Device memory addresses management.
DISKDRIVE - Physical disk drive management.
DISKQUOTA - Disk space usage for NTFS volumes.
DMACHANNEL - Direct memory access (DMA) channel management.
ENVIRONMENT - System environment settings management.
FSDIR - Filesystem directory entry management.
GROUP - Group account management.
IDECONTROLLER - IDE Controller management.
IRQ - Interrupt request line (IRQ) management.
JOB - Provides access to the jobs scheduled using the schedule service.
LOADORDER - Management of system services that define execution dependencies.
LOGICALDISK - Local storage device management.
LOGON - LOGON Sessions.
MEMCACHE - Cache memory management.
MEMLOGICAL - System memory management (configuration layout and availability of memory).
MEMPHYSICAL - Computer system's physical memory management.
NETCLIENT - Network Client management.
NETLOGIN - Network login information (of a particular user) management.
NETPROTOCOL - Protocols (and their network characteristics) management.
NETUSE - Active network connection management.
NIC - Network Interface Controller (NIC) management.
NICCONFIG - Network adapter management.
NTDOMAIN - NT Domain management.
NTEVENT - Entries in the NT Event Log.
NTEVENTLOG - NT eventlog file management.
ONBOARDDEVICE - Management of common adapter devices built into the motherboard (system board).
OS - Installed Operating System/s management.
PAGEFILE - Virtual memory file swapping management.
PAGEFILESET - Page file settings management.
PARTITION - Management of partitioned areas of a physical disk.
PORT - I/O port management.
PORTCONNECTOR - Physical connection ports management.
PRINTER - Printer device management.
PRINTERCONFIG - Printer device configuration management.
PRINTJOB - Print job management.
PROCESS - Process management.
PRODUCT - Installation package task management.
QFE - Quick Fix Engineering.
QUOTASETTING - Setting information for disk quotas on a volume.
RECOVEROS - Information that will be gathered from memory when the operating system fails.
REGISTRY - Computer system registry management.
SCSICONTROLLER - SCSI Controller management.
SERVER - Server information management.
SERVICE - Service application management.
SHARE - Shared resource management.
SOFTWAREELEMENT - Management of the elements of a software product installed on a system.
SOFTWAREFEATURE - Management of software product subsets of SoftwareElement.
SOUNDDEV - Sound Device management.
STARTUP - Management of commands that run automatically when users log onto the computer system.
SYSACCOUNT - System account management.
SYSDRIVER - Management of the system driver for a base service.
SYSTEMENCLOSURE - Physical system enclosure management.
SYSTEMSLOT - Management of physical connection points including ports, slots and peripherals, and proprietary connections points.
TAPEDRIVE - Tape drive management.
TEMPERATURE - Data management of a temperature sensor (electronic thermometer).
TIMEZONE - Time zone data management.
UPS - Uninterruptible power supply (UPS) management.
USERACCOUNT - User account management.
VOLTAGE - Voltage sensor (electronic voltmeter) data management.
VOLUMEQUOTASETTING - Associates the disk quota setting with a specific disk volume.
WMISET - WMI service operational parameters management.

For more information on a specific alias, type: alias /?

CLASS - Escapes to full WMI schema.
PATH - Escapes to full WMI object paths.
CONTEXT - Displays the state of all the global switches.
QUIT/EXIT - Exits the program.

For more information on CLASS/PATH/CONTEXT, type: (CLASS | PATH | CONTEXT) /?

wmic:root\cli>temperature
No Instance(s) Available.


wmic:root\cli>

Veovis
  • Members
  • 389 posts
  • Last active: Mar 17 2009 12:24 AM
  • Joined: 13 Feb 2006
for me i get

wmic:root\cli>temperature
Accuracy  Availability  Caption         ConfigManagerErrorCode  ConfigManagerUserConfig  CreationClassName       CurrentReading  Description               DeviceID      ErrorCleared  ErrorDescription  InstallDate  IsLinear  LastErrorCode  LowerThresholdCritical  LowerThresholdFatal  LowerThresholdNonCritical  MaxReadable  MinReadable  Name            NominalReading  NormalMax  NormalMin  PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  Resolution  Status  StatusInfo  SystemCreationClassName  SystemName  Tolerance  UpperThresholdCritical  UpperThresholdFatal  UpperThresholdNonCritical
32768                   Numeric Sensor                                                   Win32_TemperatureProbe                  CPU Internal Temperature  root\cimv2 0                                                                                                                                                1270         0            Numeric Sensor                                                                                                            1000        OK                  Win32_ComputerSystem     PROMETHEUS  5

wmic:root\cli>

(paste that into something without word wrap to get a better picture of it)

based on the fact that "accuracy" is 2^15, "availability" and "currentreading" are blank, and my laptop is 5 years old, i dont think it has temp sensors that i can access. can someone else test this and see if tey get anything?
Posted Image
"Power can be given overnight, but responsibility must be taught. Long years go into its making."

wulfgar
  • Members
  • 41 posts
  • Last active: Mar 02 2007 11:34 PM
  • Joined: 05 Jul 2006
How i can change memory & cpu bar´s background color ?
Btw nice script

And how to add disk usage bar ?
□ <- omg box ?

Veovis
  • Members
  • 389 posts
  • Last active: Mar 17 2009 12:24 AM
  • Joined: 13 Feb 2006
off the top of my head... it depends on what kind of control that bar is. i think its a window progress bar (as opposed to a gui progress bar) you might be able to add somethnig like cbBlue to the options or as a last resort add a picture behind it off the color you want.

as for disk usage... i'm not sure, i have considered it before, but a bar is a bad idea i think, it should be a light or something (like the one on your computer, because with your harddrive your either using it or your not, so a bar seems ... inaprropriate)

as for how to get the disk usage i haven't the faintest idea, perhaps google for a command line program
Posted Image
"Power can be given overnight, but responsibility must be taught. Long years go into its making."

wulfgar
  • Members
  • 41 posts
  • Last active: Mar 02 2007 11:34 PM
  • Joined: 05 Jul 2006
I didn´t get it , but thanks anyway
□ <- omg box ?

dejk
  • Members
  • 80 posts
  • Last active: Mar 30 2008 10:58 PM
  • Joined: 29 May 2007
This is basically a copy of evl's script, but it doesn't work. I've copy pasted the GetCPULoad() function and then I've created a button. That's all. I get the errormessage "This DllCall requires a prior VarSetCapacity".


#NoEnv
#SingleInstance, force

SetTimer, CPU ,1000

return



CPU:
SetFormat, float, 02
CPULoad := GetCPULoad()
Gui, Add, Button, x30 y30 w200 h 100, %CPULoad%
Gui, Show
return 

Pause::
Pause


GetCPULoad()
{
  Global
  SetBatchLines, -1
  IdleTime0 = %IdleTime%  ; Save previous values
  Tick0 = %Tick%
  DllCall("kernel32.dll\GetSystemTimes", "uint",&IdleTicks, "uint",0, "uint",0)
  IdleTime := *(&IdleTicks)
  Loop 7                  ; Ticks when Windows was idle
    IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index )
  Tick := A_TickCount     ; Ticks all together
  load := 100 - 0.01*(IdleTime - IdleTime0)/(Tick - Tick0)
  Return, load
}