View Single Post
Old 16th November 2015, 00:08   #22
Major Dude
LoRd_MuldeR's Avatar
Join Date: Sep 2005
Location: Somewhere over the Slaughterhouse
Posts: 797
Okay, please try again with the new TEST version, it (hopefully) fixes the problem on Windows 10 without breaking Windows 7:

Please note the changes in the include file. You'll need to build the installer with the new (updated) include file!

Originally Posted by Aminifu View Post
If the only difference between this library file in Windows 7 and Windows 10 is the missing string, you could try replacing the file in Windows 10 with the one from Windows 7 or you could use a hex editor to add the string to the Windows 10 file.
I can't replace or modify the SHELL32.DLL, even if I wanted to, because it's an integral part of the OS. And there's also protections for such system DLL's, which prevent any modifications. Also, the problem is not so much that the string is missing. The problem is that we need to know what the string is - the string that does appear in Explorer's context menu - but it's no longer loaded from the "known" place. Injecting our own string into the "old" known place wouldn't help at all. We have to detect the actual string at runtime, from the "new" place!

Originally Posted by Aminifu View Post
Use a process monitoring app (like Process Explorer) to see which folder(s) "shell32.dll" is being read from. In Windows 7, sometimes a system library file is read from a 'WinSyS' folder. Also, if running a 64-bit OS, there will be a 32-bit version and a 64-bit version.
It uses the SHELL32.DLL in "System32" directory. Nothing changed about that.

Originally Posted by Anders View Post
Me trying to get people to follow the official Windows guidelines is unfortunate?

I realize some people might be in situations where automatic pinning might be desirable but this also lets the cat out of the bag and allows everyone to pin themselves. Microsoft have already locked down the file associations to the point where it is now annoying in all sorts of ways because people have abused the ability to take them over for so long.
I think "obfuscating" existing API's was a really bad decision to begin with. The "evil" guys are going to figure out how to use the API anyway - it only may take a little longer. At the same time, it is an unnecessary and annoying burden for all the legitimate applications out there.

My Plugins: StdUtils | NSISList | CPUFeatures | ExecTimeout | KillProc
My source of inspiration:
LoRd_MuldeR is offline   Reply With Quote