Intended Audience: Technically
Oriented Windows Users
A very long-standing set of erratic behaviors has plagued some Windows users
from Windows XP onward. The issues are that, at sporadic times, the
window of a newly invoked application doesn't open in front of other existing
windows - making it appear as if it didn't open at all.
A similar but different issue is when a taskbar (set to Auto-Hide mode) displays under all existing app windows when invoked, making it seem like it did not open.
After much research, we found each of these problems may be caused by a
separate set of circumstances. One seems to be related to a windows
registry setting holding an “foreground display lock timeout” timeout value
while others seem due to other apps that force themselves to the top (Z stack value)
that interfere with Windows features that also need to be on top - like the aforementioned
taskbar.
1. Apps Opening Under Existing Apps!
A little background:
When Windows opens an app that a user just requested, it starts flashing the
app's icon on the taskbar for a defined "lockout" period before
moving the app's window to the top. The problem is that the default
timeout period is 200,000 milliseconds. That's 3m 20s - a very long
time. Since we never have to wait that long to see most programs open on
top, there obviously is another piece of logic related to the app that forces
Windows to move it to the top. Perhaps it is the completion of some type of
program load event. Several fellow bit-diddlers (TK Anthony’s 1960’s
coinage) also report that the problem “might” be solved by changing a Windows registry
setting labelled "ForegroundLockTimeout" from its enormously long default of
200000 (decimal) to 0. That should effectively disable icon flashing and
forcing the app to open on top.
The registry path\value that contains the timeout value is:
HKEY_CURRENT_USER\Control
Panel\Desktop\ForegroundLockTimeout
The default is 200000 decimal milliseconds. If the Microsoft
specs are correct, that translates to a whopping 200 seconds or 3m 20s. Hard to believe but that’s the value.
So, to make this change you need to use the system registry editor, RegEdit.
In case it's not apparent, modifying the registry is easy and dangerous - a very
bad combination. So be extremely careful if you venture down this rabbit
hole. There is a RegEdit option to back up the registry which is highly recommended in case the change doesn’t work
or causes problems.
Run RegEdit by typing its name in the run command box you get
when you click the Windows start button. Once opened, navigate the
registry's key tree in the left panel just like you navigate the folder
structure in Windows Explorer to locate "HKEY_Current_User\Control
Panel\Desktop". Once found, look at its items in the right panel
then locate the “ForegroundLockTimeout" value. Right-click
that item and click Modify. Then change the value from its
default of decimal 200000 to just 0. Be sure to make
note of the original value so you can reset it if this method doesn't work for
you. In fact, you should ALWAYS "bookmark" any registry entry
you fondle. That makes it easy to find it again. Close RegEdit and
reboot to be sure the new value is used by Windows. Repeat after me:
Like most, this tweak is not guaranteed to work. In fact, it only worked
(initially) on 2 of our research workstations, one of which has since gone back
to its evil ways.
The
annotated screen capture above shows all the parts of RegEdit noted
above. The lock time out field is shown having right-clicked it and
selecting modify. Although 0 is the same in Hexadecimal and Decimal, if you
were to reset to the default of 200000 (decimal), you must
select Decimal.
This tweak may not work for everyone, but many have reported success with
it. If it doesn't work, you should reset the key back to its previous
value using the RegEdit to be tidy – reload the backup you
made at the start of the procedure. It cannot be overstated that if you
don't have the problem, you should NOT be doing this. If
it ain't broke ... don't break it!
Program Interference:
The other similar issue that sometimes arises is that the taskbar is displayed
under other app windows. This can be very confusing if you have your taskbar
set to auto-hide because, when you hover at the screen edge and existing app
windows cover the whole screen, it appears as though the taskbar did not open
when, in fact, it opened under the other windows.
In our case, we run a simple-but-great screen utility, "ARuler for Windows", which acts like a ruler except that it measures screen pixels. This is great for web development when you need to figure out
what size object will fill a particular area. Being an on-screen utility
that measures things in other windows, it is designed to stay on top of all
windows.
The problem is that this can confuse Windows and disallow things like the taskbar
applet from asserting its own top "Z-order" window status. While ARuler was
running, our large 4-line taskbar with auto-hide enabled didn't seem to be
working. We then thought about ARuler and closed
it. Voila! The taskbar popped over all windows. Solved!
So, if your taskbar is hiding under app windows, you should start closing other
apps that are running. One by one, check if the task bar resumes normal
behavior after each app closure. The last closure that fixed the problem is likely your culprit.
Hope that helps some of you because it definitely will NOT help all of
you!
Thanks for this information. If you are getting any problem regarding window then can go to Windows Live Mail Help which will help you solve all the problem related to your system.
ReplyDelete