Java 1.6 je rychlejsia a nie je to len moj subjektivny dojem ( http://www.sweb.cz/pichlik/archive/2006_12_31_archive.html ) a navyse mala by byt 100% spatne kompatibilna, takze z mne dostupnych informacii je asi najlepsie riesenie pouzit 1.6 (ak neplanujete podporovat aj OS X 10.5).
JDIC by mal vediet pracovat aj s registrami windows a kill procesu by mohol byt tu http://forum.java.sun.com/thread.jspa?threadID=593672&messageID=3115528

ya

Martin Blažek  wrote / napísal(a):
No, stejně budu používat funkce závislé na OS (potřebuju killovat uživatelem nastavené procesy a pokud vím, tak to Java neumí nebo třeba zálohovat Windows registry), takže budu dělat knihovny pro různé OS. Javu 1.6 moc nechci, protože uživatelé většinou mívají starší verze JRE ještě, ale asi to vyzkouším...

Ján Valkovič napsal(a):
Rozdiel bude v tom, ze toto by malo chodit aj pod inymi OS ako Windows, dodate mu len nativnu kniznicu.
JDIC je opensource, da sa stiahnut zdrojak ( https://jdic.dev.java.net/files/documents/880/62103/jdic-0.9.3-src.zip ), tab to odchytavanie eventov bude, len to treba najst.
Kvoli comu nemozte pouzit javu 6? Ta to podporuje uz priamo http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/

ya


Martin Blažek  wrote / napísal(a):
Tak jsem přidal dll knihovnu a dostal jsem nový error :-)

Exception in thread "Thread-2" java.lang.NoSuchMethodError: notifyEvent
   at org.jdesktop.jdic.tray.internal.impl.DisplayThread.initTray(Native Method)
   at org.jdesktop.jdic.tray.internal.impl.DisplayThread.run(Unknown Source)

Ovšem pokud to znamená, že stejně musím používat externí dll, tak to už z fleku můžu použít tu svou, která už funguje :-) Teda až na to, že pořád nevím, jak dostat tu informaci o kliknutí ;-)

Michal Palička napsal(a):
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