![]() Any other ZBID will fail with 0x5 (ACCESS DENIED). Also ZBID_UIACCESS is permitted only if the process has UIAccess token (obtainable, for example, by setting uiAccess=true in app.manifest, more info here). CreateWindowInBand/Ex works ONLY if you pass ZBID_DEFAULT or ZBID_DESKTOP as dwBand argument.GetWindowBand works in every case, you can use it without any problem.Short reply: Some yes (under certain conditions), some no. The order of bands are the following, from the lowest to the highest z-order (some ZBID orders are unknown for me ATM): Like ZBID_DESKTOP, other bands also can be subdivided in 2 groups: normal and topmost window. These bands cannot mix each other, meaning, for example, that ZBID_DESKTOP will never be on top of ZBID_IMMERSIVE_MOGO, that is, bands have their z-orders too. These are always on top of any window in the ZBID_DESKTOP band, that is, any normal or topmost window created by third parts developers will no longer cover start menu and stuff. Task manager “always on top” is on ZBID_SYSTEM_TOOLS. For example the start menu is on ZBID_IMMERSIVE_MOGO. ![]() Starting from Windows 8, Microsoft “introduced” other bands, and all of them are higher z-orders than the desktop band. These will never be “touched” by each other, topmost window will always stay on top of other normal window, no matter what. In the end there are 2 groups of z-order in the ZBID_DESKTOP band, normal and topmost. What if there are 2 topmost windows? Well, in this case, the last window to gain focus will stay on top of other one. As the name says, it will stay on top of other windows. This is true unless there are topmost windows. Until Windows 8, there was only one band, the ZBID_DESKTOP band, which is the default one when you write an application that creates a new window and when it gains focus it will go to the highest z-order meaning it will go on top of other windows. For clarity, in this context the word “band” means group of z-orders
0 Comments
Leave a Reply. |