用于windows的java文件图标覆盖

bah*_*glr 7 java icons overlay file

我试图像Tortoise SVN或Dropbox那样在文件和文件夹上实现图标覆盖.

我在互联网上做了很多搜索,但我找不到Java的解决方案.

谁能帮我这个? 在此输入图像描述

Ceb*_*nce 4

很抱歉确认您的担忧,但这无法在 Java 中完成。

由于 Windows 资源管理器是控制者,因此图标叠加是一种插件。它必须作为 DLL 实现(不是 JNI,而是真正的本机 DLL),并在 Windows 注册表中注册。正如您在CodeProject文章中看到的,您的 DLL 必须实现特定的接口 - IShellIconOverlayIdentifier.

以TortoiseSVN 实现为例。

TortoiseSVN 的 DLL 由资源管理器加载并附加到其进程:

DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */)
{
  ...
  if (dwReason == DLL_PROCESS_ATTACH)
  ...
Run Code Online (Sandbox Code Playgroud)

为了在 Java 中做到这一点,您需要编写一个 DLL 来加载 JVM 和您的 JAR,这有点过大了。

至于托盘图标覆盖,您的 Java 应用程序是控制者,因此它可以完成。