Tcmd 22.00.42 - annoying desktop refresh

May 18, 2018
29
2
#1
Subject says it all: Tcmd still insists on triggering a desktop refresh both on startup and exit. I found a discussion from the end of 2016 with people getting the heck annoyed out of them by this nonsense. Here we are in 2018 and this behavior is still there. Is there any hope this will be fixed anytime soon? Or is there at least some secret combination of settings that will eliminate this behavior? It's a massive annoyance, that's for sure...
 
May 30, 2008
214
1
#2
Is that really a big problem?

Unless you constantly start and exit TCMD, but I would imagine this to be done with TCC and not TMCD?
 
#3
It is a big problem if you just plain don't like it. But as fas as I know the reasons for it and how to avoid it were hashed out in the thread frim Oct-Nov 2016. Until now, no one has complained since then. Since then, I haven't seen the desktop refresh. If I recall correctly, it will, happen if TCMD and Explorer have different settings regarding the visibility of files (hidden, system, ...). Since TCMD uses an Explorer interface, Explorer is affected when TCMD changes settings. So (again IIRC) the solution is/was to use the same settings in both. Of particular interest was the TCMD.INI directive "ShowSuperHidden". I'd recommend reading that thread again, more carefully.
 
May 18, 2018
29
2
#4
No, there never was a solution. I do use the same visibility settings between TCMD and Windows Explorer, and I still get the desktop refresh.
 
#6
Do you also have
Code:
ShowSuperHidden=Yes
in the [TakeCommand] section of TCMD.INI? The last I knew, you can't get it there from the OPTION dialog, and if it's not there, it defaults to "No".
 
May 18, 2018
29
2
#7
Setting ShowSuperHidden=Yes makes no difference with the desktop refreshing, as one would expect. What it does, however, is make matters much worse by causing a number of ordinarily hidden system files to be shown on the desktop. That's completely and utterly unacceptable, of course.

Long story short, Tcmd is behaving improperly for years now, with no acknowledgment of the issue let alone any kind of solution in sight. As near as I can tell the developers simply tell us to "deal with it" and go away. Not cool.
 
Last edited:
May 18, 2018
29
2
#8
As a postscript, and thinking about this some more, it is clear that the way TCmd uses Windows Explorer to display its file listing is fundamentally flawed. TCmd is one application of many, and setting preferences for how files and folders should appear in this particular application should not have system-wide effects (or even session-wide effects, as in this case). Let's just think about this for a minute: Let's say I prefer to not see hidden files and extensions in my regular Windows experience, but I want these to show while using TCmd. Well, as soon as I start TCmd, I will see the unwanted information in all Explorer windows and dialogs. Just imagine you had more misbehaving applications of that sort, and you'd end up never knowing what you will or will not see in various file listings in any of these. That's an untenable situation.

The conclusion is that there are two options:
  • TCmd just accepts whatever settings are used in Windows Explorer, and leaves those alone.
  • TCmd uses its own built-in file lister that functions independently of Windows Explorer. I note that there are plenty of applications out there that do just that. There are even open-source projects that provide perfectly capable file listers that JPSoft may be able to use.
As a third (semi-)option, perhaps we can at least have the ability to turn off that file listing support in TCmd (frankly, I have never seen a whole lot of use for it in the first place). For example, let's not mess with Explorer settings if the file lister Window is not shown in TCmd. Thus, if I configure TCmd to not show the file listing, the annoying desktop refresh (and messing with Windows Explorer settings) would not occur.
 
Last edited:
May 26, 2008
495
3
#10
Yep I remember that thread. The flash was so annoying. I gave up on TCMD and have been using ConEmu for a while now. It's a more robust wrapper for console applications. (It lacks the Explorer panes that TCMD could show but I never used those anyway.) It works great with everything I can throw at it... cmd, TCC, PowerShell, Telnet, Putty, etc.
 
May 26, 2008
495
3
#14
Since I haven't seen the behavior or heard a complaint in well over a year, I figured others found settings to avoid it. ... yes/no?
Nope I never succeeded in resolving the issue. According to that older thread, the problem is caused by Take Command tweaking Explorer settings on program startup/shutdown. Rex said that if your Explorer settings in Windows matched what you had set in Take Command, this shouldn't happen. But I synchronized my settings (confirmed with ProcMon) and the problem continued to happen.
 
May 18, 2018
29
2
#15
Since I haven't seen the behavior or heard a complaint in well over a year, I figured others found settings to avoid it. ... yes/no?
No, there is no solution. The fact that few people complain is mildly interesting in itself, but it does not allow you to draw any further conclusions. The criticized behavior is pervasive at least in Windows 10. And of course, my above more fundamental criticism stands, and would remain even if there was no desktop refresh.
 
May 30, 2008
214
1
#17
For what it's worth, I run the latest Windows 10 and do not see any flashes when I start TCMD v20. (Though these days I mostly run TCC directly to take advantage of the new ANSI features in W10.)

Same at work where we use a slightly older version of Windows 10.

So, maybe a thing in other TCMD versions only?
Or may possibly be caused by 3rd party software that extend Explorer with plug-ins?
 
May 18, 2018
29
2
#25
You have received multiple responses, including postings in this very thread, alerting you to the fact that this is not correct. Feel free to look at my other post on this topic containing screenshots of both my Windows Explorer and TCMD Explorer settings: They are identical. Nevertheless TCmd insists on doing a desktop refresh.

This post by vefatica in particular (and a series of additional posts by this forum member) contains an in-depth examination of the issue, yet you continue to ignore it.

There have also been suggestions, by myself as well as others, that reconfiguration of the Windows shell by an individual application, which is exactly what you are doing, is strongly discouraged in the first place. At the very least there should be an option specifying that TCmd simply uses the existing Windows Explorer settings, with no attempt to alter them (and consequently no refresh).

None of the above posts and suggestions received any kind of response whatsoever. Why is that?

This is a confirmed bug in TCmd.
 
Last edited:

rconn

Administrator
Staff member
May 14, 2008
10,614
97
#26
That is not correct.

There are six Windows Explorer settings that TCMD uses; if the default Windows values are different from the TCMD values, then TCMD must call the SHGetSetSettings API to set the values at startup. Depending on which values are being reset, this API may refresh the desktop.

The relevant Windows settings & TCMD settings are:

fShowSysFiles (set by the TCMD.INI ShowSysFiles directive, TCMD config dialog Advanced tab)
fShowSuperHidden (set by the TCMD.INI ShowSuperHidden directive)
fShowCompColor (always set by TCMD to 1)
fDontPrettyPath (always set by TCMD to 1)
fShowAllObjects (set by the TCMD.INI ShowHiddenFiles directive, Advanced tab)
fShowExtensions (set by the TCMD.INI ShowExtensions directive, Advanced tab)

If these values are the same in Windows & TCMD, then TCMD will *not* call SHGetSetSettings, and no refresh will occur. (Verified here on 4 systems.)
 
May 18, 2018
29
2
#27
Good to hear that you have four systems where this works. That's nice, but it is clearly not enough of a basis to call my statement incorrect. I have just one system, but as you can see in this and the other thread on the topic, I am not the only one with this issue. In all of the cases presented in this thread, things do not work as described for your four systems: It appears that TCmd does call SHGetSetSettings on the systems in question. All the Windows/TCmd Explorer settings you mention clearly are the same. Did you even bother to look at the screenshots I had referred to in my post above?

Finally, TCmd should not mess with these Explorer settings in the first place, period. Adding an option to prevent it from doing so should be near-trivial, so why not do it?
 
May 18, 2018
29
2
#28
One additional little detail that may be interesting: Whereas v22 on my system triggered a desktop refresh both on startup and exit, v23 only does so during startup. Go figure.
 
May 26, 2008
495
3
#29
Agreed, I double checked all those settings and confirmed they were the same in Explorer and TCMD. In spite of this, TCMD still did a desktop refresh. Confirmed on both of my systems.

I also agree with another poster that this is bad form anyway for an application to change system-wide settings to accommodate itself.