It is currently Thu Mar 28, 2024 1:21 pm

All times are UTC - 8 hours [ DST ]


Forum rules


Please, keep discussions on topic and in the right forum. The start menu topics go into the Classic Start Menu forum, etc. This makes it easier for people to locate topics they are looking for.
If you get a satisfactory response to your question, please mark the topic as "solved". Click the green √ button in the bottom-right of the post.



Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Fri Nov 14, 2014 3:39 pm 
Offline

Joined: Fri Nov 14, 2014 3:29 pm
Posts: 1
Hi

In addition to using your great Classic Shell in Windows 8.1, I also used it in Win7PE, Win8PE.
Everything works beautifully in true Windows :)
But in PE, I can not use the latest version. The latest version that fully works is version 3.6.1 :?:

In PE v3.6.2 and following, wait 1 minute then 5 seconds and then it hangs.

I'm not really a developer even if I play a little with AutoIT. However, I tried a bit in VS2008SP1.
If I change a little ClassicStartMenu.cpp versions 3.6.2 -> 3.6.8 by taking a part of what was done in 3.6.1, Then ClassicShell 3.6.2 -> 3.6.8 works in my WinPE :).
I can not test with the following versions, the sources are no longer shared, and you have 1000x reasons ;) , but maybe it can also work in PE with the same changes.

Can you enlighten me on improvements made on ClassicStartMenu.cpp between v3.6.1 and later versions ?
Does something can be made to work in both real windows and WinPE ?

Line 28
Code:
enum THookMode
{
HOOK_NONE, // don't hook Explorer, running as a separate exe
HOOK_NORMAL, // hook Explorer normally, no retry
HOOK_STARTUP, // retry to hook Explorer
};

static HWND HookStartMenu( THookMode mode )
{
HMODULE hHookModule=GetModuleHandle(L"ClassicStartMenuDLL.dll");

// find the Progman window and the start button

HWND progWin;
bool bFindAppManager=(mode==HOOK_STARTUP && GetWinVersion()>=WIN_VER_WIN8);
for (int i=0;i<120;i++) // retry for 1 minute
{
if (bFindAppManager)
bFindAppManager=!FindWindow(L"ApplicationManager_DesktopShellWindow",NULL);
if (!bFindAppManager)
{
progWin=FindWindowEx(NULL,NULL,L"Progman",NULL);
if (progWin) break;
if (mode!=HOOK_STARTUP) return NULL; // the Progman window may not be created yet (if Explorer is currently restarting)
}
Sleep(500);
}
DWORD process;
DWORD thread=GetWindowThreadProcessId(progWin,&process);

for (int i=0;i<10;i++) // retry for 5 sec
{
if (FindTaskBar(process)) break;
if (mode!=HOOK_STARTUP) return NULL; // the taskbar may not be created yet (if Explorer is currently restarting)
Sleep(500);
}

if (mode==HOOK_NONE)
return ToggleStartMenu(g_StartButton,false);
==>
Code:
static HWND HookStartMenu( bool bHookExplorer )
{
HMODULE hHookModule=GetModuleHandle(L"ClassicStartMenuDLL.dll");

// find the Progman window and the start button
HWND progWin=FindWindowEx(NULL,NULL,L"Progman",NULL);
if (!progWin) return NULL; // the Progman window may not be created yet (if Explorer is currently restarting)

Line 147
Code:
HookStartMenu(HOOK_NORMAL);
==>
HookStartMenu(true);

Line 288
Code:
HWND menu=HookStartMenu(bHookExplorer?HOOK_STARTUP:HOOK_NONE);
==>
HWND menu=HookStartMenu(bHookExplorer);

Thanks


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 12, 2015 8:48 am 
Offline
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5374
Windows PE is not supported. It doesn't even seem to load the full Explorer shell yet?

Version 3.6.1 of Classic Shell is now too old. There were far too many changes after that: http://classicshell.net/history/

Does Win7PE and Win8PE have the complete set of APIs shipped with full Windows?

As an alternative, you could use Windows To Go? Tried running Classic Shell on Windows To Go?

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and helped a little with Classic Shell's testing and usability/UX feedback.


Top
 Profile  
Reply with quote  
PostPosted: Mon Nov 04, 2019 2:19 pm 
Offline
User avatar

Joined: Thu Feb 21, 2013 11:04 pm
Posts: 470
ChrisR wrote:
Hi

In addition to using your great Classic Shell in Windows 8.1, I also used it in Win7PE, Win8PE.
Everything works beautifully in true Windows :)
But in PE, I can not use the latest version. The latest version that fully works is version 3.6.1 :?:

In PE v3.6.2 and following, wait 1 minute then 5 seconds and then it hangs.

I'm not really a developer even if I play a little with AutoIT. However, I tried a bit in VS2008SP1.
If I change a little ClassicStartMenu.cpp versions 3.6.2 -> 3.6.8 by taking a part of what was done in 3.6.1, Then ClassicShell 3.6.2 -> 3.6.8 works in my WinPE :).
I can not test with the following versions, the sources are no longer shared, and you have 1000x reasons ;) , but maybe it can also work in PE with the same changes.

Can you enlighten me on improvements made on ClassicStartMenu.cpp between v3.6.1 and later versions ?
Does something can be made to work in both real windows and WinPE ?
Thanks




I'm curious which PE build are you using? Or did you make one from scratch?

Ivo should just rename one of his older versions as a "Portable Classic Shell" just to work with PE. That would be a simple thing to do, just put it on a download page and rename it really.



Gaurav wrote:
Windows PE is not supported. It doesn't even seem to load the full Explorer shell yet?

Version 3.6.1 of Classic Shell is now too old. There were far too many changes after that: http://classicshell.net/history/

Does Win7PE and Win8PE have the complete set of APIs shipped with full Windows?

As an alternative, you could use Windows To Go? Tried running Classic Shell on Windows To Go?



Windows To Go isn't being developed anymore and seems to require a specific USB that many OEMs arent supporting anymore, and there really aren't even that many drives that WTG is meant to work with. I've never used it, but it would seem the obvious problem would just be the size, it's a whole stick rather than just a little dongle.

Someone should make a WinPE Build just for Classic Shell & Portable Apps though, even you or Ivo should just make an ISO with a stable Classic Start Menu preinstalled, that would be awesome.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 69 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group, Almsamim WYSIWYG Classic Shell © 2010-2016, Ivo Beltchev.
All right reserved.