Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Portage JNI Windows sur JNI/Linux+wine

4 réponses
Avatar
Pasturel Jean-Louis
Je voudrais réutiliser les développements de dll faites sous Windows et
compilées avec cygwin/gcc pour les compiler ( sans toucher au code) et
créer les bibliothèque .so sous Linux + wine.
J'ai vérifié que toutes les fonctions utilisées dans Windows étaient
présentes dans les .dll.so de wine.
Est-ce quelqun a fait et réussi la manip ?
[HS]
Donné pour info
J'essai de compiler des programmes simples et j'ai un warning à la
compilation par gcc linux:
ld: AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; utilise
par défaut 080482a0
et l'erreur à l'exécution est :
bash: ./klog.bin: /usr/lib/libc.so.1: bad ELF interpreter: Aucun fichier
ou répertoire de ce type
Evidemment le fichier /usr/lib/libc.so.1 n'existe pas, j'ai tenté en
créant un lien vers /lib/libc.so.6, mais j'ai un autre pb à l'excecution

[HS]

4 réponses

Avatar
Pasturel Jean-Louis
Pasturel Jean-Louis a écrit:
Je voudrais réutiliser les développements de dll faites sous Windows et
compilées avec cygwin/gcc pour les compiler ( sans toucher au code) et
créer les bibliothèque .so sous Linux + wine.
J'ai vérifié que toutes les fonctions utilisées dans Windows étaient
présentes dans les .dll.so de wine.
Est-ce quelqun a fait et réussi la manip ?
[HS]
Donné pour info
J'essai de compiler des programmes simples et j'ai un warning à la
compilation par gcc linux:
ld: AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; utilise
par défaut 080482a0
et l'erreur à l'exécution est :
bash: ./klog.bin: /usr/lib/libc.so.1: bad ELF interpreter: Aucun fichier
ou répertoire de ce type
Evidemment le fichier /usr/lib/libc.so.1 n'existe pas, j'ai tenté en
créant un lien vers /lib/libc.so.6, mais j'ai un autre pb à l'excecution

[HS]



Je me reponds à moi-même...
Apres avoir regardé dans les pages du projet Wine, j'ai vu qu'il fallait
utiliser le mécanisme de Winelibs, qui n'est pas simple.
Et puis, je me suis aperçu que les fonctions système ( exemple code
clavier de la derniere touche tapée) dont j'avais besoin, même si les
symboles étaient présent dans les bibliothèques, n'étaient en fait pas
implentées ou retourne systématiquement la même chose.
Je vais regarder direct coté Linux.
J'ai trouvé sur le net comment faire le keylogger, mais par contre je
n'ai pas trouvé de fonctions systemes :
- qui renvoie la position de la souris sur le bureau
- qui renvoie un identifiant ( handle ) de la fenetre active.
Si qq a, je suis preneur..

Pour qu'il n'y ai pas d'ambiguité, mon projet java consiste à créer un
automate capable d'enregistrer des enchainements de saisies claviers et
clics souris dans une application et de pouvoir la rejouer ensuite.
L'outil marche correctement sur Windows NT4 et NT5. Je voudrais rajouter
une librairie JNI Linux .

Avatar
JScoobyCed
"Pasturel Jean-Louis" wrote
J'ai trouvé sur le net comment faire le keylogger, mais par contre je
n'ai pas trouvé de fonctions systemes :
- qui renvoie la position de la souris sur le bureau
- qui renvoie un identifiant ( handle ) de la fenetre active.
Si qq a, je suis preneur..


Pourquoi ne pas utiliser l'objet java.awt.Robot qui fait deja tout ca ? A
moins que les clics/saisies soient en dehors de l'appli Java...

JScoobyCed
-------------

Avatar
Pasturel Jean-Louis
JScoobyCed a écrit:
"Pasturel Jean-Louis" wrote

J'ai trouvé sur le net comment faire le keylogger, mais par contre je
n'ai pas trouvé de fonctions systemes :
- qui renvoie la position de la souris sur le bureau
- qui renvoie un identifiant ( handle ) de la fenetre active.
Si qq a, je suis preneur..



Pourquoi ne pas utiliser l'objet java.awt.Robot qui fait deja tout ca ? A
moins que les clics/saisies soient en dehors de l'appli Java...

JScoobyCed
-------------


Eh oui , les clics ( et les keystroke) sont en dehors de l'appli Java,

puisque je veux enregistrer dans l'appli elle-meme ( qui peut ne pas
etre en Java, d'ou obligation de passer par JNI). J'y suis arrivé sous
windows car il y a dans l'API win32 tout ce qu'il faut que je ne
retrouve pas sous Linux.
Par contre apres pour excécuter les actions, j'utilise bien java.awt.Robot.


Avatar
Yves Martin
Pasturel Jean-Louis writes:

Je vais regarder direct coté Linux.
J'ai trouvé sur le net comment faire le keylogger, mais par contre je
n'ai pas trouvé de fonctions systemes :
- qui renvoie la position de la souris sur le bureau
- qui renvoie un identifiant ( handle ) de la fenetre active.
Si qq a, je suis preneur..


Je pense que la Xlib doit fournir ce genre de mécanismes... Le mieux
est peut-être de regarder le code source de 'xev' qui fait cela très
bien.

Pour un identifiant de fenêtre, il faut voir du côté de 'xwininfo'

Par contre, savoir la fenêtre active n'est possible que par
l'intermédiaire du gestionnaire de fenêtres...

--
Yves Martin