Tripredacus Posted October 4, 2012 Share Posted October 4, 2012 (edited) I've been working on porting my app installer program to work on Windows 8. I'm just about done but there is left one little issue which is mainly cosmetic. In previous version of Windows, I run a program at first boot by putting it in here:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceWindows 8 is different because it isn't supposed to boot to the Desktop, but instead show the ModernUI/Start Screen instead. It seems that if you put a program in that registry key, Windows will "sort-of" boot to the desktop. My program puts up a messagebox on the screen saying that it is done working and clicking OK will exit the program. But the screen is black with a blue (unpopulated) taskbar on the screen. I can get back to the Start Screen by pressing the Windows key, but I would rather be able to send some sort of command that puts that back up instead. So is there any other way to open/close the Start Screen without sending keypresses?EDIT: it appears that registry key is not erased at boot like in Windows 7 and earlier OSes. Edited October 5, 2012 by Tripredacus Link to comment Share on other sites More sharing options...
Tihiy Posted October 5, 2012 Share Posted October 5, 2012 So is there any other way to open/close the Start Screen without sending keypresses?Call programmatically PostMessage(HWND_BROADCAST,RegisterWindowMessage("SHELLHOOK"),HSHELL_TASKMAN,GetDesktopWindow()); after closing your messagebox. That won't work however if other windows are open on desktop.EDIT: it appears that registry key is not erased at boot like in Windows 7 and earlier OSes.It is for me. Link to comment Share on other sites More sharing options...
Tripredacus Posted October 5, 2012 Author Share Posted October 5, 2012 So is there any other way to open/close the Start Screen without sending keypresses?Call programmatically PostMessage(HWND_BROADCAST,RegisterWindowMessage("SHELLHOOK"),HSHELL_TASKMAN,GetDesktopWindow()); after closing your messagebox. That won't work however if other windows are open on desktop.EDIT: it appears that registry key is not erased at boot like in Windows 7 and earlier OSes.It is for me.Thanks, I'll try that. I could even just not show the messagebox I guess.You are right about the reg key, I found the issue.... Link to comment Share on other sites More sharing options...
Stoic Joker Posted October 5, 2012 Share Posted October 5, 2012 Why not just send a WM_KEYDOWN message specifying the Win key to the shell? Link to comment Share on other sites More sharing options...
Tripredacus Posted October 5, 2012 Author Share Posted October 5, 2012 (edited) Why not just send a WM_KEYDOWN message specifying the Win key to the shell?I'm going to try that too, but with some OS detection since all my apps are designed to run on multiple OSes. We'll see which is the easiest to handle.Hmmm does even sending the Windows key cause a problem if another application is open? In my case there is.... sysprep.exe. Does the problem sending the key occur because that program is in focus? Edited October 5, 2012 by Tripredacus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now