Why doesn’t Desktop Info (DTI) find the environment variable I set?
When a Windows process is started, it inherits a snapshot of the parent environment as it exists at that time. So, opening a command window and changing environment variables after DTI has started will not change the environment of the DTI process. To give DTI specific environment values, you would need to start a command process, set the environment and spawn DTI from that same command process.
Why doesn’t the Cpu Temperature work on my computer?
OEM hardware sensors tend to be hit and miss. The problem is manufacturers don’t necessarily expose them to the operating system in a standard way. Windows provides standard WMI queries to be used by manufacturers but not everyone implements them.
The only other approach is to laboriously study each manufacturer’s hardware sensor implementation and write specific code for each one. This is not a path I wish to follow, better to leave that to a dedicated team of experts. There are a number of tools available to read hardware sensor information such as CoreTemp, Open Hardware Monitor, HWMonitor, Speedfan, Real Temp, Hardware Sensors Monitor, OCCT. I have implemented the CORETEMP item and hopefully I’ll find another more complete tool that exposes an API.
I notice Windows 10 1803 and later is correctly showing CPUTEMP so I guess Microsoft is catching up.
Why does it show “<n/a>” for my WMI query?
The “<n/a>” is the English string for “not available”. It’s there in the sample ini file. You can change this to anything you like. The reason this string appears is because your WMI query either has a problem or it worked and there was no result set. That is to say nothing matches your request so there is nothing to display.
This can happen for other items as well. For example, PROCESSMEM where no processes match your criteria, CPUTEMP where the sensor information is not available in WMI.
BGR? Whoever heard of bgr? What’s wrong with regular rgb?
I agree. However, that’s how the Delphi compiler does colours. At the time I first started writing DTI (2005), it seemed pragmatic to go with that. It was probably not a wise choice but there’s no turning back now.
As of version v1.13, you can specify item colours in rgb format by using the ‘#’ hash prefix. Eg #rrggbb. You can continue to use bgr format by omitting the ‘#’ has prefix.
How do I make it start when I log in?
The simplest solution is to create a shortcut in your Startup folder. Right click on DesktopInfo.exe and select “Create shortcut”. Now copy this shortcut to one of the following directories:
On Windows 7 and later, the user path is:
On Windows 7 and later, the All Users path is:
On Windows XP, the user path is:
C:\Documents and Settings\<username>\Start Menu\Programs\Startup
On Windows XP, the All Users path is:
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
The problem is some items won’t display properly unless you “Run as Admin”. In this case modify your Startup shortcut and check the Privilege Level option.
You can also add it to the registry Run key:
This doesn’t give you the Admin level though.
Another option is using Task Scheduler to run the application at log in. You also have the option to “Run with the highest privileges”.
How do I stop DTI from being minimised when I press WIN+D?
The Show Desktop button on the Windows Quick Launch toolbar and the WIN+D key combination makes every application including Desktop Info disappear. Apparently Windows actually puts the desktop on top of everything. Applications are not minimised. Applications are not notified. There’s nothing I can do about that.
If you like using Win+D, you can follow that with a tap of the Win key. This pops up the start menu and it also brings back Desktop Info.
How to deploy DTI by GPO
I’m not at all familiar with this subject but I found a discussion which might get you started. It’s a couple of years old but that shouldn’t be a problem.
Can I put DTI on the Windows 10 lock screen?
Short answer is no and the reason is Windows demands a specific kind of “app” which DTI will never be.
However, as of v1.15, DTI can create an image file which can be used on the lock screen. To create the image, add the SNAPSHOT item. See the manual for details.
To update the lock screen image, try the following steps from answers.microsoft.com. I haven’t tried it myself so I don’t know if it works:
- Open gpedit.msc
- Under computer configuration, click to expand administrative templates
- Expand control panel and then click personalization
- Right click “Force a specific default lock screen image” and click edit
- Select enabled, type in the image path and file name, click apply and then click ok
- Right click “Force a specific Start background” and click edit
- Select enabled, click apply and then click ok
- Close local group policy editor and restart the computer
Apparently this can only be done in Enterprise, Education and Server SKUs.
Why do the CPUCOUNT and CPUUSAGE items not work?
Both of these items obtain information from the Windows “Processor” performance counter. If that performance counter is not present on your system, these items will not work. I am yet to determine why these counters are missing. I’ve read of some C++ runtime library installations trashing the counters. It’s feasible you may have some lean and mean Windows installation that has many counters disabled for performance reasons.
You can test if these counters are installed by running the Windows Performance Monitor tool:
1. Run perfmon.exe
2. Select the Performance Monitor node on the tree.
3. In the chart window on the right, right click and select Add Counters.
4. In the list on the left, find and select the Processor category.
5. If this category is missing, the Processor performance counters are not installed.
6. If the category is present you will see entries in the list view below for “Total”, “<All instances>” and several numbers representing the cpu cores on the system. If any of these entries are missing, the performance counters are most likely corrupt.
I’ll leave it as an exercise for you to figure out how to install or rebuild these performance counters.
Desktop Info Secure Installation
The following was posted on the forum by a user and may be of interest to those needing to maintain a secure environment.
“Hi, I want to report a vulnerability RELATED to Desktop Info, not in it. I’m a professional penetration tester. Due to the lack of an installer, I’ve seen my customers unzip the program to the root of the C drive. Any new directories created on the root of the C drive have weak permissions which gives “authenticated users” read/write permissions, unlike those placed under “Program Files”. This allowed me to escalate privileges from a Domain User to Domain Administrator as well as local system privilege escalation.
Since there was no installer, the program was unzipped to C:\DesktopInfo and a shortcut placed in the Windows startup folder. I simply added CMDs to the Desktop Info ini file. When a user with admin privileges logs in, they unknowingly run my commands. The impact of this is that if a user of Desktop Info gets “phished” by a black hat hacker, they can backdoor Desktop Info’s ini file to run commands such as install malware or ransomware.
I suggest adding something to the documentation stating that the program should be placed in a secure location, such as “C:\Program Files” or “C:\Program Files (x86)”. Best case would be for you to create an installer that places the program in “Program Files” by default.”
Version 3.2 introduces a new secret command line option to create a pre-configured Desktop Info executable that runs without an external configuration file and so can’t be easily tampered with.
If you need logging and Program Files security is preventing it, add %appdata% or %userprofile% to the log file name in the ini file to cause the log file to be created in the user data directory.