Windows 8 incompaitbility with sysinternals Desktops utility - windows-8

After Googling for about the past hour and a half, I have been unable to find out any definitive information on how the start menu and how windows 8 style applications work behind the scenes. I was under the impression that Windows 8 Style applications were processes which created fullscreen windows and that the Windows 8 start menu was created by explorer.exe in much the same way. But there are incompatibilities between Windows 8 the 1.x version Sysinternal's Desktops utility, I have to imagine that something more complex is going on.
However, in Spy++, each Windows 8 style application appears as standard Window with the WS_EX_TOPMOST style set, which would make sense, assuming they are nothing special. With respect to the Start Menu, it appears as a window of class ImmersiveLauncher created by explorer.exe. Perhaps explorer has developed an aversion to having multiple instances...
Using the old version of SysInternal's Desktops, the explorer instances in the additional desktops work fine, but do not load pinned items nor load the desktop background and icons.
Is there any documentation on why Windows 8 behaves differently from past versions when multiple copies of explorer.exe are running in different desktops?
(This is purely for curiosity's sake)
(Yes, I know there is a Desktops 2.0 version available which supports Windows 8, but it uses interesting workarounds, like switching to the original desktop when the windows key is pressed. It also seems to trigger some initialization within explorer.exe when the desktop is loaded for the first time beyond simply starting the process.)

Related

VB6 applications in Windows 10

I moved a few of my applications to WINDOWS 10 and one of the issue I noticed - which is not really an issue with functionality but rather the colors. Msgboxes seem to not have the top bar anymore (where TITLE goes) - it's actually there, but it's so light that it's difficult to see where the top bar is and the rest of the msg box. does anyone know how to tweak it so that it looks more defined just like it did when it was run in XP or Win7
The controls implemented from the OS. You need to change properties on the operation system. Maybe this could help:
http://answers.microsoft.com/en-us/windows/forum/windows_10-start/change-application-background-color-window-10/167b133e-62f4-4eae-9425-2b9a6019bded

How to disable the CTRL key in vb.net

I have written a program for work that kills windows explorer (effectively hides desktop icons, taskbar and start menu) so no users can access the internet from our machines, this works well as most machines are touch screen so no keys can be pressed and no access to OSK, but to go a step further I am needing to disable the CTRL key when explorer is not running (Killed in my program) then enable it when they are back (Active in my program).
I've searched Google and seen a lot of ideas but none seems to work, i've got a timer that kills task manager if it starts up, the reason i need to stop CTRL is incase a keyboard is present on the machine i need to stop any shortcuts from being activated and they mostly seem to use the CTRL key.
I know they might be other short cuts but the guys who use my machines aren't the brightest bunch of people in the world but they might be one that 'is reight good ont tinternet'.
Cheers for any advice
Mark
You should look into Kiosk mode.
Here is an example of enabling it in Windows 8.1:
Enable Kiosk Mode in Windows 8.1
If you are still using Windows 7, there are workarounds, like this one:
Creating a Kiosk Machine with Windows 7 and Two Free Applications

Windows-8 & Internet Explorer-10 broke my ActiveX control drawing?

I am experiencing a very weird behavior while running my Active-X control on “Windows 8” OS, and browser “Microsoft Internet-Explorer 10”.
The control:
My Active-X control is very stable product that my company is already distributing for several years between hundreds of happy customers. The control is an ATL custom-draw control, written in C++, and built with “Visual Studio 2008”.
The problem – the drawing disappears:
While I press the link that opens my control for the first time, I can see that my control is being painted gradually (as my data loading is sometimes slow), but eventually all the drawing disappears, leaving a blank white background color where the controls is located.
Using ‘Spy++’ I can see that my control is really there, but all its painting disappear.
If I move the browser or change its size the control will be re-painted, but otherwise it is simply not visible.
I tried to debug this problem and find out who is erasing my drawing.
I came up with the following technique:
Using WinDBG I added breakpoints at ‘user32.dll’ DLL on the following methods: user32!InvalidateRect, user32!InvalidateRgn, user32!FillRect,
I defined these methods to only show stack and continue with to run,
I ran the above problematic scenario,
When the problem happens I am trying to view who called ‘Invalidate’ or ‘FillRect’,
Since all this happens very quickly I am using the ‘Print Screen’ button to freeze the moment
After doing this several times I find that exactly at the time my control disappears the following stack calls ‘user32!FillRect’:
user32!FillRect
MSHTML!memcpy+0x9805
MSHTML!COmWindowProxy::SwitchMarkup+0x468
MSHTML!CMarkup::SetInteractiveInternal+0x428
MSHTML!CMarkup::RequestReadystateInteractive+0x98
MSHTML!CMarkup::BlockScriptExecutionHelper+0xde
MSHTML!CHtmPost::Exec+0x794
MSHTML!CHtmPost::Run+0x1c
MSHTML!PostManExecute+0x5f
MSHTML!PostManResume+0x7b
MSHTML!CHtmPost::OnDwnChanCallback+0x3a
MSHTML!CDwnChan::OnMethodCall+0x19
MSHTML!GlobalWndOnMethodCall+0x169
MSHTML!GlobalWndProc+0xd7
user32!InternalCallWinProc+0x23
user32!UserCallWinProcCheckWow+0x100
user32!DispatchMessageWorker+0x3ef
user32!DispatchMessageW+0x10
IEFRAME!CTabWindow::_TabWindowThreadProc+0x981
IEFRAME!LCIETab_ThreadProc+0x378
iertutil!CIsoWinMsg::PostQueuedMessagesToComponent+0x4b
IEShims!NS_CreateThread::DesktopIE_ThreadProc+0x66
KERNEL32!BaseThreadInitThunk+0xe
ntdll!__RtlUserThreadStart+0x72
ntdll!_RtlUserThreadStart+0x1b
This is consistent.
When examining this stack I found that this message belongs to a window of class Internet Explorer_Hidden, which is window of size zero (0x0), but with a WS_VISIBLE style. This window belongs to the browser.
Does anyone know this phenomenon?
Is it possible that the browser hidden window is causing this problem?
Could you recommend on other approach to try and hunt the stack that is erasing my drawing?
Many thanks for any hint!
Paz Offer
Conclusion:
The bug was in Microsoft Internet Explorer 10
I used Microsoft Support service to farther investigate this problem. Enclosed here are the findings:
Microsoft Support viewed the version of my IE (Internet Explorer) and suggested to first upgrade IE to its latest patch.
As it happens, the machine I was working on was not setup to be automatically updated by the Windows Update service for some time. As part of upgrading IE I had to first update windows using Windows Update service to its latest patches.
During the process of Windows Update the Microsoft Internet Explorer 10 was automatically updated to its latest patch.
Once IE updated the problem disappeared.
In addition, the ActiveX GUI load process became much faster.
The old version of Microsoft Internet Explorer 10, which caused the problem:
Version: 10.0.9200.16384
Update Versions: RTM (KB2718695)
The new version of Microsoft Internet Explorer 10, which solved the problem:
Version: 10.0.9200.16635
Update Versions: 10.0.7 (KB2846071)
Now all is working as expected.
Thanks, Pazo

Windows 8 store app development without touch screen

I've started doing Windows 8 Store app development for some projects at work, but I do not have a touch screen device of my own at home. If I write a personal app for submission to the store, I must use my own hardware since I can't use the work computers for personal projects. My concern is getting into a situation where I submit an app to the store, then have touch-screen users describing issues that I can't replicate on a non-touch-screen device.
Are there any functions or capabilities or interactions that behave differently in a Windows 8 store app when using touch vs. using only a mouse? Are there any scenarios I could encounter where I would be at a loss to reproduce or troubleshoot a user's problems if I do not have a touch screen?
As Konstantin suggested, a tablet is strongly recommended.
The next best thing is to use the device simulator in Visual Studio. It will let you change screen sizes, and allows you to simulate basic touch gestures with the mouse. This MSDN link has more info: Testing Windows 8 apps using Visual Studio 2012
Microsoft have introduced events that are pointer agnostic meaning that they should function the same way regardless of whether you are using a touchscreen, a mouse or a pen. Those are the MSPointer events. Here's some documentation. Using event handlers for these events mean that you should not be getting complaints from users about the touch friendliness of your application. However I still strongly suggest that you acquire a surface and test your application on it. Not just for the touch friendliness but also because of performance differences.

Screensaver in Windows 8

I have a screensaver written in C# which takes a screenshot of the Desktop and displays it as the, guess what, screensaver.
This works pretty well except in Windows 8 where the screensaver launches in, what looks like, a separate Desktop with a solid background and thus i am only taking a screenshot of this solid background instead of the actual desktop.
This only counts if the screensaver is launched by the timeout by windows itself, not if you execute the screensaver directly (by double-clicking the *.scr) nor in the preview-panel (/p switch) or if you preview it using the "Test" button (which imho invokes the /s Switch).
According to a Moderator at Microsoft-Answer and so far the only information i found regarding this:
"A design change was made in Windows 8 that prevents screensavers from drawing over an image of the desktop." - Source: http://answers.microsoft.com/en-us/windows/forum/windows_8-desktop/bubbles-screensaver-has-black-background/e0807324-5ca6-4abe-b6ba-716848b41ff5
tl;dr: I'm looking for a way to take a screenshot of the actual desktop through a screensaver in Windows 8.
Thanks in advanced.