ALTaleX531 / TranslucentFlyouts

Translucent effect for most of the win32 flyouts
GNU Lesser General Public License v3.0
779 stars 24 forks source link

Only Installs when I Compile myself, and only when I turn checksum on in build properties #102

Closed bbmaster123 closed 4 months ago

bbmaster123 commented 4 months ago

Even your debug versions won't install for me on this system (works fine on 2 of my other pc's), but when I compile myself on the system that's having trouble it installs fine, and once I set up the styles in the registry and downloaded symbols, it renders the effects just fine (TFMain64 only, compatibility mode off). I also tried removing ALL other modification software, but still almost none of the official versions will install, ever since I uninstalled v2.1, including v2, 2.1 and 3.0 pre-release. The official v2.1 x86 build still works for some reason, but only that one. When I run the install command through Windbg, it gets stuck at HookHelper if that helps at all.

some quick questions:

  1. what could have happened that I can't reinstall older versions? Currently on build 22631.3155
  2. why can I only install my self built TFMain64.dll, but not the ones you've compiled?
  3. What makes a system compatible vs not compatible?
  4. What if the pc doesn't really support windows 11 to begin with? Like no TPM or very old GPU/CPU? not the newer issue with POPCNT that people are talking about right now, for example. I ask because one of my systems that works is 10th gen i7 with rtx 2080 ti, and the not working one is 1st gen i7 with radeon HD4350, which only supports WDDM1.1 and latest driver is a beta for windows 8 from 2015

Everything seems to be working okay on this system for now, so this probably isn't urgent, but if there is anything I can do on my end to help at all regarding testing please let me know. I'm not a developer, but I am an advanced user and don't mind messing with things and spending time testing

Cheers :)

ALTaleX531 commented 4 months ago

The information provided by your windbg is useful, but I need it to be a bit more detailed, like a screenshot containing the stack view and debug output.

  1. Unfortunately, I'm not sure why this is happening. I've created almost 10 VMs for Windows 11, but I haven't been able to reproduce the problem of not being able to install on any of them, nor have I been able to reproduce the problem of not being able to reinstall. I'm not sure why this is, it requires more contextual information.
  2. I'm using the same compilation options as you except with checksums enabled. As far as I know checksums are only used for native driver files, which isn't necessary for Dlls, but instead it only installs properly when enabled which is the strangest thing. Yes, I'm still not sure why that would be the case, it would require more contextual information, I've never encountered this before. I suspect that Windows 11's RunDLL32 may have added checksum checking, but this requires further research.
  3. TF.Win32 does make heavy use of some Windows internal functions, but these are hardly ever changed, so there is no compatibility problem. TF.Modern relies on internal functions and interfaces that are often changed, and therefore can easily crash or not working. Some users have reported that TF repeatedly crashes their desktops, however, after testing with the system information they provided, no such problem was found, and I think I'll add a crash detection procedure to gather the cause of the crashes.
  4. Theoretically, it doesn't matter if the PC supports Windows 11 or not, as long as the system is Windows 10 1809 and above, it should be able to run TranslucentFlyouts.Win32 properly, but of course the issue may be related to the compile option /arch:AVX2, which needs to be further confirmed.

I believe this may be caused by some of the compilation options, please try adjusting the compilation options and testing on multiple physical machines as I only have one physical machine on hand at the moment and cannot do more testing. Yes, I appreciate you putting so much time into looking into these issues, but since I also maintain DwmBlurGlass and since I don't really have that much free time, I probably won't be spending much time on TF. While I still plan to add a decent amount of features to TF, they probably won't all be implemented, and for that I apologize.

bbmaster123 commented 4 months ago

Thanks for your response, and my apologies for the delay in getting back to you. Just so you know, I've put back all the modification software i had removed before (windhawk, explorerpatcher, explorermicablur, explorertool, dwmblurglass) Hopefully the information I'm gathering will help you find the real cause.

  1. I've test in 2 VM's, but I've also tested on 2 actual machines. The VM's (one fresh, one in use daily) seem to have no issues, which would make sense if the problem was that a cpu cant execute avx2, but can be emulated through vmware. Im not sure that it is emulated, but it would make sense

  2. my self compiled build has checksum turned on, and all avx turned off. Using your dll, I tried replacing rundll32.exe with an old version from 2021 but same thing, so I'm thinking that might not be the issue. I put the original rundll32 back after. happy to try various options and see what happens. Don't think I've tried checksum disabled and avx/avx2 disabled, ill let you know how that goes

  3. I'm not getting crashes with my dll, except when used with explorerpatcher's "skin taskbar and tray popup menus". If that option is disabled, no problems with my tfmain64-selfcompiled.dll, not sure about TFModern though. If I get crashes after installing your release version sucessfully, I'd be happy to send you details about that as well

  4. This would make a lot of sense. being that the problem computer in my case is an i7 920, which only supports avx but not avx2. We would need a larger sample size than this 1 computer though, and all my other computers are 2nd gen, 10th gen, and 13th gen. I'll see if I can find an appropriate old computer at work that no one is using, its a pretty chill work environment and no will will notice, care, or understand anyway :P

As requested, here are some screens of my windbg, I'm still a bit of a noob at this, so please let me know if I'm missing any vital information, or if anything else might be useful:

tf1 tfm2 tfm3png

I did notice the source path that points to E:\Beautify\TranslucentFlyouts3\TFMain\dropdownhook.cpp, so I also tried creating that path and copying the cpp file there. It didn't make a difference but was probably worth a shot ahha

since I also maintain DwmBlurGlass and since I don't really have that much free time, I probably won't be spending much time on TF. While I still plan to add a decent amount of features to TF, they probably won't all be implemented, and for that I apologize.

which is fair enough, you don't need to justify further than that IMO, its your time and your effort! In my view, translucentflyouts has enough features already, just needs a bit more debugging I think and that should be fine for 99% of your audience, I would believe.

cheers man :D

ALTaleX531 commented 4 months ago

Yes, from your screenshot I can see the illegal instruction exception, which means that the computer does not support the avx2 instruction set. As for the checksum issue it needs further confirmation, I'd start by looking at why ExplorerPatcher's option enabled causes a crash. Thanks for your feedback!

bbmaster123 commented 4 months ago

Right, no avx2 on this system, its an old system. I think this was the same one I used in high school haha I've installed my dll without avx, and with checksum turned off, no issues on this i7 920 system, immediately started downloading symbols. I think its almost certain that avx2 was the problem for installation, but I've still only tested on this system. I will definitely let you know when I've had a chance to test it on at least 1 other old computer with windows 11

As for the crashes, I turned on the menu skin setting in explorerpatcher after starting TFmain64-selfcompiled.dll, opened windbg and attached to explorer.exe and right clicked the taskbar. This is what I see:

ep_context_crash_tfv3

If I'm not mistaken, wouldn't that part of the code mean its having trouble finding a resource, or maybe its locked? Just a guess really, but since that's an explorerpatcher specific setting, maybe its already managing something that TF is trying to move??

If I'm missing any information that might help do please let me know!!

BTW not a single issue with dwmblurglass on this same system or any of my other physical machines or vm's so far. Whatever the issues happen to be, I don't think it overlaps much if at all

ALTaleX531 commented 4 months ago

It looks like I need more contextual information, such as the location of the source code corresponding to the ImmersiveHooks::EnableHooksInternal stack frame, since the crash doesn't happen in my tests.

bbmaster123 commented 4 months ago

oh I see, Utility isn't a source file, I guess its an intermediary file? Anyway, the previous frame 0x1 in the stack points to line 129 in HookDispatcher.hpp, and ImmersiveHooks::EnableHooksInternal at frame 0x2 points to line 228 in Hookdispatcher.cpp

Here's another few screenshots of the last handful of frames in the stack trace, hopefully it helps: 0x1 0x2 0x3 0x4

as before, I'm happy to send as much info as you need. I've also got myself a laptop with an i3 first gen, 6gb ram and an hdd from work that no one will ever need. I'll put win11 on it shortly so I can test on that system as well

ALTaleX531 commented 4 months ago

Already fixed in the latest version.

bbmaster123 commented 4 months ago

Thanks ALT! can confirm the new build installs and works on all my systems first time, no trouble at all! :) No more crashing taskbar menu either, it renders a bit weird, but I don't think its a big deal, at least I don't personally mind. It just has a an opaque backdrop and an acrylic border that I can't change. To be fair, it only happens on the windows 11 taskbar with explorerpatcher enabled, the windows 10 taskbar looks normal with EP on or off. tb-menu

You have march break? I think you deserve a break regardless, cheers :)