Merci pour toutes ces infos.

Je suppose que charger directement shell32.dll par
 static
{
 System.loadLibrary("shell32.dll");
 }
puis appeler ShellExecute -dont je connais bien les param�tres- n'est pas possible...
Ce serait un petit peu plus simple, quoique dans le cas de shell32 un peu lourd pour la
b�te (> 2Mo !) si la dll est r�ellement charg�e int�gralement.
D'autres langages interpr�t�s d�finissent (VB, ou Progress qui est multi-plateformes) 
des
�quivalences entre les types de param�tres.

Fr�d�ric

----- Original Message -----
From: "Patrice Godard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, June 17, 2002 4:37 PM
Subject: Re: Re: Appel de pgms natifs Windows ... (un de plus)


|
|
| -----Original Message-----
| From: Fr�d�ric Michoulier <[EMAIL PROTECTED]>
| To: <[EMAIL PROTECTED]>
| Date: Mon, 17 Jun 2002 16:26:28 +0200
| Subject: Re: Appel de pgms natifs Windows ... (un de plus)
|
| Effectivement, le test fonctionne (quand on ne se m�lange pas les crayons !) , et 
|comme
je
| l'esp�rais l'appli  enregistr�e est bien utilis�e sans qu'on ait besoin de la nommer.
| Ex : passer � Runtime.getRuntime().exec() un tableau qui vaut "c:\\macmd.bat", 
|"win.ini"
| d�marre bien notepad.exe qui affiche win.ini, avec macmd.bat qui contient %1 
|uniquement.
|
| | Moi je passerais plutot par une petite DLL native qui fait un ShellExecute().
| | En plus �a te permet aussi d'ouvrir les documents avec leur application enregist�e.
|
| Je ne suis pas familier des dlls. Peut-on les appeler directement par
| Runtime.getRuntime().exec() ? ou faut-il cr�er un .exe de toutes mani�res ?
| D'autre part dans le cas de la cr�ation d'une dll ou d'un exe j'imagine qu'il vaut 
|mieux
| si on le peut se cantonner � des param�tres String ce qui permet d'utiliser 
|simplement
| Runtime.getRuntime().exec() alors qu'avec d'autres  types il faudrait passer ar JNI.
| Me tromp�-je ?
|
| --------------------
| Si tu d�cides d'utilise ShellExecute, tu n'as plus besoin d'executable, donc plus 
|besoin
de Runtime.getRuntime().exec()
|
| Il faut te d�finir une m�thode native genre doShellExecute(String filePath)
|
| Un p'tit coup de javah et tu as ton stub C dans lequel tu r�cup�res ton filePath 
|pass�
en param�tre depuis Java.
| Ensuite c'est l'histoire d'une ou deux lignes de C pour appeler ShellExecute (d�finie
dans shell32.dll)
|
| Apr�s compilation tu as une DLL que tu charges avec un
| static
| {
| System.loadLibrary("maDll");
| }
|
| Et �a roule.
|
| Le plus dur est je pense de connaitre un minimum l'API Win32 et la compilation de 
|DLL.
|
| Patrice
|
| -- Use Opera, the most user-friendly web browser on Earth --
|

Répondre à