This project is read-only.

Windows 7 RTM x64 compatibility

Oct 21, 2009 at 3:33 PM

Just wondering when we might get better functionality in win 7? I ask this because when I open examp. explorer.exe I do not see accelerator, dialog, menu or string table resources.

but when I open it in vs2008 I can see those. So far VS is the only thing that shows all.

Oct 21, 2009 at 4:41 PM

I fired up Windows 7 RTM and did some inspection. I cannot reproduce your issue: when I open Windows 7 x64's explorer.exe from within Visual Studio 2008 it gives the exact same resources list: there's only Bitmaps, Icons, MUIs, RT_MANIFEST, and VS_VERSONINFO.

Can you send me a screenshot or anything?

Oct 21, 2009 at 7:14 PM
Edited Oct 21, 2009 at 7:42 PM

side by side image:

side by side dialod resources in visual studio 2k8:

You can see that vs shows gialog, menu etc. resources and anolis does not


EDIT: I have meda following: Disabled UAC and system restore. I also changed the file properties. Instead of the default trusted installer. Now I'm the owner of the file I also checked that I have full access to the file. After that I have copyed the file to another location. Thought I can see the deifference in the resources even if I do not copy it to some other place.

Oct 21, 2009 at 8:01 PM

Still no repro at my end. Can you send me your explorer.exe file?

Is this on x64 or x86? If this is x64 can you confirm which version of explorer you're editing (C:\windows\explorer.exe (x64), or C:\windows\syswow64\explorer.exe (x86)). Thanks

Oct 21, 2009 at 10:50 PM
Edited Oct 21, 2009 at 11:12 PM

Doesn't matter. The result is same for both. I send an email for you so you can dl. both C:\windows\explorer.exe, and C:\windows\syswow64\explorer.exe. <- Someone other asking the same.

Edit: Can you see dialog, menu etc resources in anolis that i only see in vs?

Oct 22, 2009 at 12:23 AM

I believe I've solved the problem:

In Windows Vista the resource model was changed so resources located in "MUI Files" (located in a subdirectory of the original EXE named "en-US" or "de-de") would be listed and loaded alongside resources located in the specified EXE file when requested. Visual Studio uses the Windows resource API for working with resources, which is why the additional resources (dialogs, string tables, etc) are being listed despite not actually being in explorer.exe.

See if you can repro this: copy explorer.exe to somewhere else on your HDD (outside of the %Windir% directory) and then re-open it in VS: you'll see those "missing" resources are no-longer listed.

Resourcer can also use the Win32 API for working with resources (in fact, it does so right now, until I finish my own PE/COFF classes) because it does so in a way which is "MUI Aware" so these 'missing' resources won't be loaded/

Oct 22, 2009 at 3:01 PM

I tryed that and could not repro it. One think that I did notice is that vs cannot save the explorer.exe. Anolis cannot also if I don't build it from the source. Now I'm curious what vs2010 beta shows. I will test it later today. Overall I think that you are right and vs should not show those.

Oct 22, 2009 at 4:09 PM

So you're saying, if you copy C:\windows\explorer.exe elsewhere to your HDD, then open that in VS, the dialogs and string tables still show?

I made a commit to the TFS earlier this week which is now buildable. You should be able to build Resourcer from source without any problems.

Oct 22, 2009 at 4:57 PM

Yes still shows even if i copy explorer.exe to different place. I just finished with vs 2010 beta and it shows same resources as anolis. So it seems there is a problem with vs 2008.

Oct 22, 2009 at 6:01 PM

Assuming you're being 100% accurate in what you're writing, this is very strange. Can you show me a screencast or something?

Oct 22, 2009 at 8:38 PM

Found the "bug" I used hacked resource and now that I opened the orginal I had the same resources in all the apps. The hacked one is from win7 rtm just can't remember with what it is hacked.

Nov 25, 2009 at 12:33 AM

I am new to this, but I also have a question about 64 bit Windows 7. I used Anolis resourcer to load up explorer.exe (of course I backed it up too), and it worked fine, I just wanted to change the start globe, so I replaced them with my own custom ones, loaded them up, and they seem to work fine. However when I replace explorer.exe with the one I edited, it doesn't start, I tried restarting my computer, and it just has a black screen and my mouse. I was able to use the Task Manager to start up the backed up explorer.exe, so it's fine. I'm curious if Anolis saves it as 64 bit application like it originally is, or converts it to 32 bit. Any help would be greatly appreciated, thanks.

Nov 25, 2009 at 1:07 AM

I'm aware of this issue, but I'm unsure as to why it's happening. Little dirty secret: Anolis' resource replacement library is a wrapper for the Win32 resource modification functions. In future I want to write my own PE format editor, which should probably fix everything up.

I'm told this isn't an issue on the 32-bit editions of Windows 7.

Because I'm using the Microsoft resource APIs built-in to Windows (and because Resourcer runs as an x64 application where possible) I believe the problem might be that Explorer refuses to run after breaking some kind of internal consistency check or something. So I'll want to see it working after it's been modified by another non-Win32 API based x64-compatible resource editor first before I decide my code is at fault.

I might have some time over Christmas to fix it. Until then I guess you're SoL. And hey, I think the Windows 7 start button is pretty enough as it is :)

Nov 25, 2009 at 4:44 AM

I do like the Windows 7 Start button, but I enjoy customizing things on my computer, just kind of a hobby I guess. But anyways, I know you probably would anyways, but if you can post an announcement on this discussion when you have a more 64bit compatible version, that would be awesome, then it would notify us by email (assuming everyone checked the email box at the bottom).