Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


Controller

Windows 95 shell update

Recommended Posts

This patched shell32.dll for Windows 95 (w/o Internet explorer shell update) adds some features I added to my custom Windows 98 (with Windows 95 Explorer) to the latest shell32.dll files (Microsoft Windows 95/95a OSR1/95B OSR 2.0/2.1 UNC Share SHELL32.DLL 4.00.955 Fix):

- Optional transparent desktop icons (labels) ;

[HKEY_CURRENT_USER\Control Panel\desktop]

"TransparentIcons"=dword:00000001 ; or 00000000 to disable

- Don't pretty filenames

- Reboot windows option instead of logging off (Previously you had to hold shift for the fast reboot; Resource modified with Hex Editor only, thus the new option has lots of trailing spaces)

Screenshot:

http://ctuser.net/other/win98pro/shell95patch_0503.png

Issues:

Tested with 4.00.1112 only, but both are quite similar, so 4.00.955 should work too.

Download:

http://ctuser.net/download.php?win98pro,sh...patch_0504a.zip

Installation:

In MS-Dos mode, replace shell32.dll with shell32.w95 / shell32.osr (check version numbers, 4.00.95* with shell32.w95 / 4.00.111? with 4.00.1112

Edited by Controller

Share this post


Link to post
Share on other sites

What's this "pretty" file names thing that's supposedly in Win95? The feature to have optional transparent labels is cool, even though I don't have a need for it.

Share this post


Link to post
Share on other sites
What's this "pretty" file names thing that's supposedly in Win95?

By default, shell32 from Win95 does not show the real filename for DOS filenames (max 8.3 and all uppercase) but lowercases all but the first character. Means e.g. MSDOS.SYS is shown as Msdos.sys.

Share this post


Link to post
Share on other sites

Ah, I see. I believe that this is not exclusive to DOS file names. When I create a folder in Windows of which the file name is entirely uppercase, Windows does the same thing to it.

Share this post


Link to post
Share on other sites

When renaming uppercase, it should renamed correctly, but shown with mixed cases in explorer. All uppercase may look ugly for ordinary windows users, but I rather prever seeing the real name (e.g. want some files to be all uppercase).

Share this post


Link to post
Share on other sites
Guest declassified

Nice!

Is it possible to use the Windows 95 shell on Windows 2k/XP? Would be nice as it probably is much lighter... :rolleyes:

Share this post


Link to post
Share on other sites

There are plenty of missing (shell folder stuff) and incompatible (SHGetSetSettings) exported functions in Windows 95 shell, and most 'undocumented' functions which are exported by ordinal only (*) are unicode on WinNT and ansi on Win9x.

On Win9x, you can use a shell32.dll wrapper which passes most functions through, and adds the missing ones (Actually what I'm doing). However, it internally still uses ansi? (shell uses plenty of OLE and therefore unicode, just who studies how far unicode is implemented), and you still need Windows 95 explorer.

On XP etc, I don't know about shell32 dependencies etc, I thought about that idea myself, however I don't use XP (long and failing installs, size, speed, ...). Maybe using Windows 2000 / NT explorer may speed up a bit (guess 2000er does not, and NT one's was buggy I heard?)

For the wrapper, I can provide some source in Flat Assembler. Guess any other language should do, if it can export functions by ordinal only (So Flat Assembler does not support this either when using the export macro)

Also gotta think about where to store (and which) resources, which make up most of the dll size

(*) Several of those functions are named in WinXP (SP?) and Vista; Using a wrapper for shell32, you may have to export both by ordinal and name, because GetProcAddress using ordinals fails on Windows 9x if the function is named.

Share this post


Link to post
Share on other sites

By default, Windows 95 [shell] uses default folder icons for network sharings; After applying this 'patch', it will use a different icon, similar to Windows XP; As replacement icon we use icon #32, a tree icon which usage is uncertain [to me]. Patching consists of 1) hex editing shell32.dll to use this icon [iD] instead of the default folder icons, and 2) replacing the icon.

You need a resource modification tool

- http://angusj.com/resourcehacker

- http://hp.vector.co.jp/authors/VA003525/Eindex.htm )

and a hex editor

1) Hex editing:

For original shell95.dll, patch:

0005E324 from 03 to 29

0005E32C from 03 to 00

For OSR2 shell95.dll, patch:

0005E664 from 03 to 29

0005E66C from 03 to 00

2) Replacing the icon

Replace icon[group] 42 (tree icon) with the desired new one

Icons can be found here:

http://ctuser.net/download.php?win98pro,sh...sharingicon.zip

Screenshot:

http://ctuser.net/other/win98pro/shell95pa...sharingicon.png

Edited by Controller

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...