ExplorerPatcher icon indicating copy to clipboard operation
ExplorerPatcher copied to clipboard

Fix Start button context menu

Open roflcopter4 opened this issue 2 years ago • 7 comments

This is a more straightforward change I made that fixes the right click menu over the Start button, which wasn't working at all.

I was going to include a fix for the EnsureXAML function but I see @Amrsatrio already submitted something along those lines. In fact, I'm almost positive that whole routine can be deleted. I've deleted it in my fork.

roflcopter4 avatar Sep 24 '23 23:09 roflcopter4

@Amrsatrio What's your input on this? On my side, Win+`X works on OS build 22621.2283, EP 22621.2361.58.1, ofc after symbols download.

valinet avatar Sep 26 '23 11:09 valinet

Can confirm even on RP builds without symbols, ofc without using any tweaks other than TranslucentTB and OldNewExplorer. They're just broken due to software that hooks our needed functions before we find for them (when symbols are not yet available).

The real thing that needs fixing is making the pattern scans scan the DLL from the filesystem instead from memory to allow compatibility with other tweak software.

In my opinion, I'm just afraid that we have to keep the mantra "if it works, don't fix it".

Amrsatrio avatar Sep 26 '23 12:09 Amrsatrio

for me, right click on start menu doesn't work at all. windows 11 21H2 build 22000.2295

i could check if build with proposed fix works, if someone published binary of it.

mexmer avatar Oct 08 '23 13:10 mexmer

@mexmer If that happens with latest EP and latest version of 22000 please make an issue. Afaik the latest one is 22000.2416

Amrsatrio avatar Oct 08 '23 13:10 Amrsatrio

i'm somewhat limited regarding updating release version of windows, in work we have central management, which keeps us at 21H2, until 22H2 is officialy approved. (mind it's enterprise edition of windows)

mexmer avatar Oct 08 '23 13:10 mexmer

but seems after restart, with lastest build of explorer patcher, right menu is back ... so i would say it works. maybe update was not complete (i did restart explorer.exe trough task manager, before)

mexmer avatar Oct 08 '23 13:10 mexmer

I looked into this again and I can say that it doesn't work for me anywhere I've tested it, and really shouldn't work. The second parameter to the CreateWindowInBand function is of type ATOM, which is a 16-bit integer. Passing a string as the second parameter shouldn't work. It ought to be truncated from the 64-bit pointer down to 16-bits. If it is somehow working for you it probably means your compiler isn't doing what it is supposed to do.

It could be fixed by changing the type of that parameter, but I'd like to mention that there isn't any need to do it this way anyway. We already know the atom from registering the class! Just pass it as I did in my code.

roflcopter4 avatar Oct 24 '23 13:10 roflcopter4