|
SourisPosX inexistant sous Linux... comment faire. |
Iniciado por Jean philippe, jan., 08 2019 9:28 AM - 6 respostas |
| |
| | | |
|
| |
Membro registado 80 mensagems Popularité : +4 (4 votes) |
|
Publicado em janeiro, 08 2019 - 9:28 AM |
Je dois récupérer la position du curseur souris dans un champ image.. et j'essaye de faire un portage sous Linux d'une application médicale à diffusion internationale. Ce serait une appli linux windev dispo pour tout le monde.. Malheureusement, les fonctions SourisPosX et SourisPosY n'existe pas pour Linux. .. qui est le seul obstacle au portage. A moins qu'il existe une solution équivalente pour Linux ... ? Merci de m'avoir lu. |
| |
| |
| | | |
|
| | |
| |
Membro registado 80 mensagems Popularité : +4 (4 votes) |
|
Publicado em janeiro, 08 2019 - 2:29 PM |
"no answer no solution, it's too bad " |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em janeiro, 08 2019 - 5:29 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 80 mensagems Popularité : +4 (4 votes) |
|
Publicado em janeiro, 09 2019 - 12:13 PM |
Merci pour cette réponse. Je ne connais pas Java, Le but est que l'installation soit très facile et fiable, (sur Linux ça prend 2 secondes), Avec des couches supplémentaires, on s'éloigne de la simplicité. C'est dommage, parce que face à l'usine à gaz radioactif Windows 10 , Linux parait d'une simplicité sympathique. Et quelques applications complètes et en diffusion libre développées avec Windev feraient une très belle pub pour PCsoft. (Windev pourrait être un outil extraordinaire pour les linux professionnels).
Bien cordialement |
| |
| |
| | | |
|
| | |
| |
Publicado em janeiro, 11 2019 - 6:03 PM |
Bonjour,
Voici un exemple de code qui permet de récupérer la position de la souris par rapport à la fenêtre qui a le focus. Ce code nécessite xdotool (installable avec : sudo apt-get install xdotool)
nHandleFenCourante est un entier sur 8 octets nXSouris, nYSouris sont des entiers nXFen, nYFen, nLargeurFen, nHauteurFen sont des entiers sRésCmd est une chaîne
nHandleFenCourante = ExécuteCommande("xdotool getactivewindow")
sRésCmd = ExécuteCommande([ unset x y w h eval $(xwininfo -id $(xdotool getactivewindow) | \ sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \ -e "s/^ \+Absolute Upper-Left Y: \+\([0-9]\+\).*/y=\1/p" \ -e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \ -e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" ) echo $x,$y,$w,$h ]) (nXFen, nYFen, nLargeurFen, nHauteurFen) = (ExtraitChaîne(sRésCmd,1,","), ExtraitChaîne(sRésCmd,2,","), ExtraitChaîne(sRésCmd,3,","), ExtraitChaîne(sRésCmd,4,","))
//Position de la souris par rapport à l'écran sRésCmd = ExécuteCommande("eval $(xdotool getmouselocation (nXSouris, nYSouris) = (ExtraitChaîne(sRésCmd,1,","), ExtraitChaîne(sRésCmd,2,","))
LIB_Infos = "" LIB_Infos += [RC] + "Handle de la fenêtre en cours : "+nHandleFenCourante LIB_Infos += [RC] + "Rectangle de la fenêtre : "+nXFen+","+nYFen+" -- "+nLargeurFen+"x"+nHauteurFen LIB_Infos += [RC] + "Position de la souris par rapport a l'écran : "+nXSouris+","+nYSouris LIB_Infos += [RC] + "Position de la souris par rapport a la fenêtre : "+(nXSouris-nXFen)+","+(nYSouris-nYFen)
PROCEDURE INTERNE ExécuteCommande(sCommand) sFicRes est une chaîne = fRepExe()+[fSep]+"res.txt" sFicCmd est une chaîne = fRepExe()+[fSep]+"cmd.sh" fSupprime(sFicCmd) fSupprime(sFicRes) sCommand = ChaîneConstruit([ # save stdout and stderr to file descriptors 3 and 4, then redirect them to sFicRes exec 3>&1 4>&2 >%1 2>&1 #Exécution de la commande passée en paramètre %2 # restore stdout and stderr exec 1>&3 2>&4 ],sFicRes, sCommand) fSauveTexte(sFicCmd,Remplace(sCommand,RC,Caract(10))) SI PAS LanceAppli("/bin/chmod +x "+sFicCmd,exeActif,exeBloquant) ALORS dbgSortieStandard(ErreurInfo) FIN SI PAS LanceAppli("/bin/bash "+sFicCmd,exeActif,exeBloquant) ALORS dbgSortieStandard(ErreurInfo) FIN sContent est une chaîne = fChargeTexte(sFicRes) fSupprime(sFicCmd) fSupprime(sFicRes) RENVOYER sContent FIN
Bons développements ! |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em janeiro, 12 2019 - 9:31 AM |
hello, comme je n'avais jamais vu dans des discussions windev quelqu'un utiliser une dll linux (.so) j'ai voulu essayé d'en fabriquer une pour lire la position de la souris dans une fenêtre et en absolu sur l'écran. 1 - Avec codeblocks sous un linux Centos 7 j'ai fabriqué une dll (libMaBiblioWD.so) avec deux fonctions : une pour lire les coordonnées du curseur dans la fenêtre active et l'autre pour lire les coordonnées du curseur sur l'écran. J'ai utilisé la bibliothèque X11 pour réaliser cela . 2 - Comme j'ai une jurassique version de windev (16) qui ne connaissait que du linux 32 bits j'ai été obligé de fabriquer cette dll en 32 bits. 3 - D'autre part sous linux j'ai des soucis (je ne sais pas si cela est dû à ma version de windev) : - Je n'arrive pas à déclencher un événement sur un clic image (j'ai alors rusé en mettant un bouton transparent). - Je n'ai pas de fichier trace généré dans le répertoire temporaire en utilisant la fonction trace Si quelqu'un pouvait me confirmer ces deux problèmes. Voici avec ma dll le code qui affiche la position curseur sur clic dans windev :
Procedure AffPosition() varX, varY sont des entiers AppelDLL32("libMaBiblioWD.so","PositionSourisRelative",&varX,&varY) CoordX = varX - Image1..X CoordY = varY - Image1..Y
et voici le résultat sous Linux - Centos 7
-- Ami calmant, J.PMensagem modificada, janeiro, 12 2019 - 9:32 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 80 mensagems Popularité : +4 (4 votes) |
|
Publicado em janeiro, 12 2019 - 11:36 PM |
yen a qui sont forts quand même ..... |
| |
| |
| | | |
|
| | | | |
| | |
|