Наложение значка файла в Java для Windows - PullRequest
7 голосов
/ 23 марта 2012

Я пытаюсь реализовать наложение значков на файлы и папки, как это делает Tortoise SVN или Dropbox.

Я много искал в Интернете, но не могу найти решение в Java.

Может кто-нибудь помочь мне с этим?enter image description here

Ответы [ 2 ]

4 голосов
/ 09 апреля 2012

Прошу прощения, чтобы подтвердить ваши опасения, но это не может быть сделано в Java.

Поскольку Windows Explorer - это тот, кто контролирует, Icon Overlay является своего рода плагином.Он должен быть реализован как DLL (не JNI, а настоящая нативная DLL) и зарегистрирован в реестре Windows.Как вы видели в статье CodeProject , ваша DLL должна реализовывать определенный интерфейс - IShellIconOverlayIdentifier.

Взять, к примеру, реализацию TortoiseSVN .

DLL TortoiseSVN загружается Проводником и подключается к его процессу:

DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /* lpReserved */)
{
  ...
  if (dwReason == DLL_PROCESS_ATTACH)
  ...

Чтобы сделать это в Java, вам нужно написать DLL, которая бы загружала JVM и ваш JAR, что было бы излишним.

Что касается наложения иконки в трее, то ваше приложение на Java находится под контролем, поэтому это можно сделать.

1 голос
/ 03 сентября 2016

У меня была та же проблема, и я только что нашел решение для Java 1.7+ в сочетании с native и jni dll.Работает с Windows Vista +, Mac и Linux.

Вы можете найти проект GIT здесь: https://github.com/liferay/liferay-nativity

См. Мой вопрос SO здесь: Способ реализации наложений значков в проводнике Windows с помощью Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...