Dobry den,

neni k tomu JDIC jeste potreba doplnit do JRE/JDK nejakou nativni knihovnu (so, 
dll)?
Zda se, ze jen jdic.jar nebude stacit...

Podle dokumentu
https://jdic.dev.java.net/documentation/README.html
to vskutku vypada, ze tam neco takoveho je...

mp.


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Blažek
Sent: Wednesday, November 28, 2007 19:11 PM
To: Java
Subject: Re: JNI - Odchycení zprávy okna

Stáhl jsem jdic.jar a zkusil zkompilovat a spustit example, který tam
byl přiložený.
Tohle je výsledek:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no tray in
java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at
org.jdesktop.jdic.tray.internal.impl.DisplayThread.<clinit>(Unknown Source)
    at
org.jdesktop.jdic.tray.internal.impl.WinSystemTrayService.<clinit>(Unknown
Source)
    at
org.jdesktop.jdic.tray.internal.impl.ServiceManagerStub.getService(Unknown
Source)
    at org.jdesktop.jdic.tray.internal.ServiceManager.getService(Unknown
Source)
    at org.jdesktop.jdic.tray.SystemTray.<clinit>(Unknown Source)
    at cz.martin.pokus.Tray.<init>(Tray.java:10)
    at cz.martin.pokus.Tray.main(Tray.java:208)

Nevíte, pls, co s tím?

Díky.

M.


Martin Blažek napsal(a):
> Díky, díky, vyzkouším to :-)
>
> Filip Jirsák napsal(a):
>> A pokud už z nějakého důvodu nemůžete použít Javu 6, podívejte se na
>> https://jdic.dev.java.net/ , odkud ta komponenta pro Javu 6 pochází.
>>
>> Filip Jirsák
>>
>> 2007/11/28, Vity <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:
>>
>>     Ahoj,
>>     nebylo by 10x jednodussi pouzit Javu 6, ktera ma primo pro tohle
>>     podporu?
>>
>>     -Vity
>>
>>     > -----Original Message-----
>>     > From: [EMAIL PROTECTED]
>>     <mailto:[EMAIL PROTECTED]>
>>     > [mailto:[EMAIL PROTECTED]
>>     <mailto:[EMAIL PROTECTED]>] On Behalf Of Martin Blažek
>>     > Sent: Wednesday, November 28, 2007 6:33 PM
>>     > To: [email protected] <mailto:[email protected]>
>>     > Subject: JNI - Odchycení zprávy okna
>>     >
>>     > Nazdar všem.
>>     >
>>     > Můj problém je následovný:
>>     > Mám Java aplikaci, kterou chci "minimalizovat do try lišty".
>>     > Udělal jsem
>>     > si proto pomocí JNI dll knihovnu ve které mám metody
>> minimizeToTry a
>>     > restoreFromTry. V Javě mám udělané native metody stejného
>>     > jména, které
>>     > volám. Po zavolání minimizeToTry se vytvoří neviditelné okno,
>>     > jehož HWND
>>     > se použije při vytvoření ikonky. Ikonka se v try liště ukáže a po
>>     > restoreFromTry i správně zmizí. Moje otázka zní: Jak
>>     > zajistit, aby se po
>>     > kliknutí na ikonku v liště dalo vědět Java aplikaci, aby se mohla
>>     > zobrazit a aby se zavolala restoreFromTry (nebo provedla něco
>>     jiného)?
>>     > Poznámka: Samozřejmě je to jen pokusná verze, jaká ikonka tam
>>     > bude a tak
>>     > podobně neřeším  :-)
>>     >
>>     > Díky všem za rady  :-)
>>     >
>>     >
>>     > Global.java:
>>     > ...
>>     > public static native void minimizeToTry(String title);
>>     > public static native void restoreFromTry();
>>     > ...
>>     >
>>     > dllmain.cpp:
>>     > #include " dll.h"
>>     >
>>     > HWND hwnd;
>>     > LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
>>     > BOOL createWindow(void);
>>     >
>>     > JNIEXPORT void JNICALL Java_cz_pokus_Global_minimizeToTry(JNIEnv *
>>     > jnienv, jclass jclass, jstring title){
>>     >  jboolean isCopy;
>>     >  const char *windowTitle = jnienv->GetStringUTFChars(title,
>>     &isCopy);
>>     >
>>     >  createWindow();
>>     >
>>     >  NOTIFYICONDATA nid = { 0 };
>>     >  nid.cbSize = sizeof(NOTIFYICONDATA);  nid.hWnd = hwnd;  nid.uID =
>>     > ICON_1;  nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
>>     >  nid.uCallbackMessage = MSG_MINTRAYICON;  nid.hIcon =
>> LoadIcon(NULL,
>>     > IDI_APPLICATION);
>>     >  strcpy(nid.szTip, windowTitle);
>>     >
>>     >  Shell_NotifyIcon(NIM_ADD, &nid);
>>     >
>>     >  return;
>>     > }
>>     >
>>     > JNIEXPORT void JNICALL
>> Java_cz_pokus_Global_restoreFromTry(JNIEnv *
>>     > jnienv, jclass jclass){
>>     >  NOTIFYICONDATA nid = {0};
>>     >  nid.cbSize = sizeof(NOTIFYICONDATA);
>>     >  nid.hWnd = hwnd;
>>     >  nid.uID = ICON_1;
>>     >  Shell_NotifyIcon(NIM_DELETE, &nid);
>>     >
>>     >  return;
>>     > }
>>     >
>>     > BOOL createWindow(){
>>     >  WNDCLASSEX wincl;
>>     >
>>     >  //wincl.hInstance = hThisInstance;
>>     >  wincl.lpszClassName = "HLPWINDOW";
>>     >  wincl.lpfnWndProc = WindowProcedure;      wincl.style =
>> CS_DBLCLKS;
>>     >  wincl.cbSize = sizeof (WNDCLASSEX);
>>     >  wincl.hIcon = NULL;
>>     >  wincl.hIconSm = NULL;
>>     >  wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
>>     >  wincl.lpszMenuName = NULL;
>>     >  wincl.cbClsExtra = 0;  wincl.cbWndExtra = 0;
>>     >  wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
>>     >
>>     >  if (!RegisterClassEx (&wincl)){
>>     >    printf("Chyba pri registrovani!!!
>>     > ");
>>     >    return FALSE;
>>     >  }
>>     >
>>     >  hwnd = CreateWindowEx (
>>     >           0,                             "HLPWINDOW",
>>     >
>>     > "Pokus",                 WS_OVERLAPPEDWINDOW,
>>     > CW_USEDEFAULT,                 CW_USEDEFAULT,
>>     > 544,                           375,
>>     >           HWND_DESKTOP,
>>     >           NULL,
>>     >           NULL,           NULL           );
>>     >            return TRUE;
>>     > }
>>     >
>>     > LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM
>>     > wParam, LPARAM lParam){
>>     >  switch (message){
>>     > /* Zde odchycenou message bych chtel poslat Java aplikaci */
>>     >    default:
>>     >      printf("Message: %i\n",message);
>>     >      return DefWindowProc (hwnd, message, wParam, lParam);
>>     >  }
>>     > }
>>     >
>>     > dll.h:
>>     > /* DO NOT EDIT THIS FILE - it is machine generated */
>>     > #include <jni.h>
>>     > #include <windows.h>
>>     > #include <stdio.h>
>>     >
>>     > #define ICON_1 10001
>>     > #define MSG_MINTRAYICON (WM_USER+1)
>>     >
>>     > #ifndef _Included_cz_pokus_Global
>>     > #define _Included_cz_pokus_Global
>>     > #ifdef __cplusplus
>>     > extern "C" {
>>     > #endif
>>     >
>>     > JNIEXPORT void JNICALL
>> Java_cz_pokus_Global_minimizeToTry(JNIEnv *,
>>     > jclass, jstring);
>>     > JNIEXPORT void JNICALL
>> Java_cz_pokus_Global_restoreFromTry(JNIEnv *,
>>     > jclass);
>>     > #ifdef __cplusplus
>>     > }
>>     > #endif
>>     > #endif
>>
>>
>>
>>
>> --
>> Filip Jirsák
>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>
>

Odpovedet emailem