dokany icon indicating copy to clipboard operation
dokany copied to clipboard

Implementing volume Icon change Helper

Open shlatchz opened this issue 10 years ago • 8 comments

Hello, I was wondering if it's possible to implement missing features, such as InstallIcon() and SetIcon() for changing the disk's icon.

Dokan vs. CBFS

Thanks!

shlatchz avatar Aug 31 '15 22:08 shlatchz

I took the liberty to rename your issue, I like dedicated issue when possible :smile: Icon is not really a file system feature but a Windows Explorer feature ; maybe we can provide an helper on DokanLibrary yes.

Two ways that I know to change drive icon:

  • The hard way: using icon overlay shell extension
  • The simple way: changing registry key like HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\M\DefaultIcon where M is your dokan drive by setting default value to your icon path for instance

On current OS versions, I don't see any reason to use the hard way as setting registry key do the trick and work well with Dokan drives too.

Maxhy avatar Sep 01 '15 05:09 Maxhy

The icon can be specified in the newly mounted volume FS, please refer to the link below

https://msdn.microsoft.com/en-us/library/windows/desktop/cc144102(v=vs.85).aspx

basically add an icon file and a desktop.ini file to the root of the volume and set the system attribute of both files, I believe the hidden attribute is optional.

[Screen shot of custom icon replacing folder icon] The following desktop.ini file was used to customize the Music folder, as seen in the preceding illustrations. [.ShellClassInfo] ConfirmFileOp=0 NoSharing=1 IconFile=Folder.ico IconIndex=0 InfoTip=Some sensible information.

From: shlatchz [mailto:[email protected]] Sent: Monday, August 31, 2015 5:32 PM To: dokan-dev/dokany [email protected] Subject: [dokany] Implementing missing features (#51)

Hello, I was wondering if it's possible to implement missing features, such as InstallIcon() and SetIcon() for changing the disk's icon.

Dokan vs. CBFShttps://www.eldos.com/cbfs/dokan-to-cbfs.php

Thanks!

— Reply to this email directly or view it on GitHubhttps://github.com/dokan-dev/dokany/issues/51.

joepperkins avatar Sep 01 '15 06:09 joepperkins

I think the same key exists in HKCU. You can't change values of HKLM if you are not an administrator. Overlay shell is used for other purposes (synced, pending, deleted) like state of a file.

If the software is running only once and the drive is visible to all users the HKLM must be used.

In generally the concept of desktop.ini and autorun.inf should also be ckecked. No permission issues.

marinkobabic avatar Sep 01 '15 06:09 marinkobabic

I tried adding a value to

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\M\DefaultIcon

and it works great, but the new icon changes both the icons (1), (2) in the following image, when I want them to be different. I want to configure an icon for (1) and another for (2).

Image

Thanks!

shlatchz avatar Sep 01 '15 10:09 shlatchz

Right, thanks for the additional information everybody.

@shlatchz That's not possible as far as I know. If you visually want a different icon you will only be able to do that on the same ico file based on the different embedded sizes.

Maxhy avatar Sep 01 '15 10:09 Maxhy

@Maxhy

It worked! Thanks :+1:

shlatchz avatar Sep 01 '15 14:09 shlatchz

This feature request is valid :+1:

But the Dokan team have other issues to manage for now.

So if someone have a great :heart: to propose a pull request. I would be happy to review it personally !

Liryna avatar Sep 16 '15 11:09 Liryna

I was just trying to do this, I set the file attributes to FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN and this is my autorun.inf file:

[Autorun]
icon=autorun.ico

But for some reason it does not show that icon, even though the file on the drive shows it as a thumbnail.

When I copy the icon off the Dokan drive it has the same hash as the source file, so I do not think that would be the problem.

On the same machine, mounting the Windows 10 ISO does show the custom icon that it has in autorun.inf, the only difference I see is the way they are mounted and the fact that the Windows ISO is using an EXE for the icon.

gudenau avatar Aug 26 '17 01:08 gudenau