2012-03-23 11 views
7

Tortoise SVNやDropboxのように、ファイルやフォルダにオーバーレイするアイコンを実装しようとしています。Windows用のJavaでファイルアイコンのオーバーレイ

インターネットで多くの検索をしましたが、Javaで解決策を見つけることができません。

誰もがこれを手伝ってくれますか? enter image description here

+1

良い質問、私はJavaプログラムがで実行するようなことを行うことは不可能であると思うだろうJava仮想マシンは、それらを実行するオペレーティングシステムから切り離します。私は確信していないので答えとして投稿しない。 –

+0

実際に変更を加えるためにネイティブコードにジャンプするためにJNIを使​​用する必要があります(つまり、一部のWinAPI経由でも可能です)。 – Java42

+0

@ W.Goemanはい、それはJavaでdiffuchultまたは不可能だと思われますが、私はそれを行う簡単な方法があると思います。私は知りませんが、おそらくアイコンのライブラリがJavaなどにオーバーレイされています。 – baharcglr

答えて

4

恐怖を確認して申し訳ありませんが、Javaでは実行できません。

アイコンオーバーレイはプラグインの一種です。 DLL(JNIではなく実際のネイティブDLL)として実装し、Windowsレジストリに登録する必要があります。 CodeProjectの記事で見たように、DLLは特定のインターフェイス(IShellIconOverlayIdentifier)を実装する必要があります。

例えば、TortoiseSVN implementationとします。

TortoiseSVNのDLLは、エクスプローラでロードされ、そのプロセスに添付されています

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

Javaでこれを行うためには、あなたは次のようになりJVMとあなたのJARをロードするDLLを記述する必要があります過剰な

トレイアイコンオーバーレイについては、Javaアプリケーションが制御可能なので、実行することができます。

関連する問題