PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Envoyer du texte à une appli windows depuis une appli windev
Envoyer du texte à une appli windows depuis une appli windev
Débuté par Claude Mistral, 13 mar. 2024 13:23 - 13 réponses
Membre enregistré
8 messages
Posté le 13 mars 2024 - 13:23
Bonjour,
Je cherche à envoyer du texte à une fenêtre non élaborée par windev depuis une appli windev,
et j'ai utilisé ce code :
[code:wl]
]EnvoieTouche("%{tab}")// pour basculer sur l'autre fenêtre windows
VarAenvoyer est une chaîne="Auth"
EnvoieTouche("{SOURIS,800,250}")//Déplacement souris pour positionnement dans fenêtre windows
EnvoieTouche(NumériqueVersChaîne(VarAenvoyer) + RC)// pour envoyer :Auth et valider
Multitâche(80)
EnvoieTouche(NumériqueVersChaîne(VarAenvoyer+dateSys) + RC)
[/code

Cela fonctionne parfaitement (après avoir jonglé avec le multitâche) mais j'ai plusieurs
textes à envoyer et, avec cette méthode la transmission est très lente et j'ai beaucoup
de données qui vont être transférées.
Alors je cherche une autre méthode pour transfèrer ces données à une vitesse plus rapide
que 1seconde/2 caractères.
J'avais pensé à quelque chose du style :
R est stRECT
API("USER32","GetWindowRect",xHandle_Fen, &R)
Mais je ne sais pas quelle instruction d'API windows utiliser (ou en windev sans passer par une API)

Pourriez-vous m'aiguiller sur ce sujet ?
Merci

Claude
Membre enregistré
8 messages
Posté le 13 mars 2024 - 15:45
Ah super, je vais potasser tout cela .
Merci Cédric_34 ça à l'air bien détaillé, mais je n'en demande pas tant, car
il suffit d'un programme qui envoie du texte à la fenêtre qui a le focus (cela peut être notepad ou un champ de saisie à remplir du genre
adresse mail voire mot de passe)
je n'ai pas besoin que ce programme prenne le contrôle , (avec 'alt et tab' le focus se prend) mais juste envoyer du texte au focus.

Mais par contre , tous les exemples que vous m'avez cités vont me rendre service pour pouvoir aller plus loin, plus tard avec mon appli.
Membre enregistré
1 046 messages
Posté le 13 mars 2024 - 16:21
Avez-vous essayé par le presse-papier ?
Membre enregistré
8 messages
Posté le 13 mars 2024 - 16:49
Ah ça s'en est une idée :merci: , parfois les choses simples passent inaperçues , en attendant de développer cette idée si quelqu'un(e) me parlait
de quelque chose à faire avec une API windows dans le détail, je serais ravi.
Membre enregistré
1 046 messages
Posté le 13 mars 2024 - 17:28
Je ne sais pas ce que ça donne mais il y a SendMessage ou PostMessage.
Cdlt
Membre enregistré
8 messages
Posté le 13 mars 2024 - 18:42
Oui j'avais cherché Sendmessage et Postmessage dans les forums, mais en vain (rien ne s'approchait de l'utilisation avec une fenêtre windows.
Mais un grand Merci pour votre aide Cédric_34 :)
Membre enregistré
1 046 messages
Posté le 13 mars 2024 - 23:20
Pour en finir avec ce sujet (car je n'ai plus beaucoup de solutions à proposer), il y a une LST qui a traité du sujet SendMessage/PostMessage :
LST n°126 : WD MessageWindows
Si vous avez accès aux LST, il serait peut être intéressant d'y jeter un œil mais d'après ce que j'ai pu lire, si la solution du presse-papier vous convient, il semblerait qu'elle soit de loin la plus facile à mettre en œuvre (bien que probablement moins robuste) car SendMessage/PostMessage soulève un problème de manifeste entre les application (si l'appli destinatrice fait l'objet d'une sécurité renforcée).

Voici un lien concernant le sujet :
https://www.ytreza.org/fr/blog/windev-partager-des-evenements-entre-application

et une possibilité supplémentaire :
fMemOuvre (Fonction)
https://doc.pcsoft.fr/?1000018917

Cdlt
Membre enregistré
8 messages
Posté le 14 mars 2024 - 08:31
Bonjour Cédric_34,
Encore merci pour avoir levé tous ces sujets, qui apportent de l'eau à mon moulin.
Pour ce qui est des LST, j'ai une centaine de Cd et clé USB , mais je n'ai pas continué après la LST 120,
donc je ne vais pas pouvoir tester, mais par contre il me tarde de tester la nouvelle version avec
Postmessage et/ou SendMessage car cela à l'air bien intéressant , ainsi que fMemOuvre.
Je n'ai pas l'utilité d'une sécurité renforcée car c'est pour utiliser sur des documents qui ne le nécessite pas.


Je vous dirais où en sont mes investigations, dès que j'aurais testé cela.
Membre enregistré
215 messages
Posté le 14 mars 2024 - 12:30
Bonjour
J'ai fait le test chez moi avec ce code qui fonctionne:
Copie ce bout de code pour test.

Texte est une chaîne="« Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit."...
+"Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna."...
+"Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet. »"
Res est un entier
Res = VersPressePapier(Texte)
EnvoieTouche("%{tab}")
EnvoieTouche("{SOURIS,800,250}")
EnvoieTouche("^{v}")
EnvoieTouche("^{v}")
Multitâche(300)


Bon DEV
Membre enregistré
215 messages
Posté le 14 mars 2024 - 12:37
Tu règles le multitâche à ta convenance.
Membre enregistré
8 messages
Posté le 14 mars 2024 - 17:36
Voilà le test vient d'être terminé avec le code fourni et le résultat est super
Texte est une chaîne="« Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit."...
+"Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna."...
+"Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet. »"
Res est un entier
Res = VersPressePapier(Texte)
EnvoieTouche("%{tab}")
Multitâche(50)
EnvoieTouche("{SOURIS,800,250}")
Multitâche(50)
EnvoieTouche("^{v}")
Multitâche(80)
EnvoieTouche("^{v}")

Merci Thierry, je vais m'en inspirer pour arriver à manipuler le texte pris en exemple, car je dois jongler avec plusieurs textes de la sorte
pour valider l'un ou l(es)'autre(s) par le biais d'une ou plusieurs touches au choix.
C'est la raison pour laquelle avec une API windows on peut changer plusieurs paramètres, chose qui n'est pas possible ici; mais c'est parfait
pour la demande que j'avais faite.

Par contre une API windows répondra trait pour trait à mon besoin final

Bon Dev également
Membre enregistré
215 messages
Posté le 15 mars 2024 - 14:32
Bonjour,
C'est la raison pour laquelle avec une API windows on peut changer plusieurs paramètres, chose qui n'est pas possible ici.
Quoi par exemple, que tu veux changer par api.

Bon DEV
Membre enregistré
8 messages
Posté le 20 mars 2024 - 15:20
Bonjour Thierry,
Désolé pour le retard, mais après maintes recherches, je ne retrouve pas l'article qui en parlait (de cette fonctionnalité qui
traitait des diverses possibilités et éventualités avec une API windows).

Mais c'était fort intéressant pourtant !

si je retrouve ce document, je viendrais en parler ici,(ou si quelqu'un m'indique une API qui peut faire cela)
en tous cas j'ai bien avancé avec les infos que tout le monde m'a enseigné

Bon Dev