RACCOURCI ça cause ou pas ?

jc2nantes Messages postés 23 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 16 octobre 2023 - 23 janv. 2023 à 15:05
Whismeril Messages postés 19018 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 - 24 janv. 2023 à 12:11

Bonjour,

Voila une question surement déjà débattue mais malgré tout je ne trouve point de réponse !

L'idée est de faire communiquer une appli (VB6) avec un programme tiers dont certaines fonctions n'attendent que des raccourcis clavier pour être exécutées.

Vous me voyez venir ?

Sendkey est mort OK mais comment faire pour contourner ça ! En gros comment envoyer des raccourcis clavier à un programme B depuis une appli A écrite en vb6 ?

Je prends toutes idées ! 

Merci !

JC

PS : oui je sais, je code encore en VB6 et ça ne va pas s'arrêter de sitôt !


3 réponses

JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 24 janv. 2023 à 09:45

Salut Jean-Christophe,

Malgré la clarté de ta question, j'ai compris que tu voulais faire dialoguer deux programmes VB entre eux...

Donc, tu veux donner l'ordre à ton programme de quitter le focus de ton appli et de faire un "Windows"+D (montrer le bureau).

En effet, la discipline est impossible avec le focus sur une application et un simple "Sendkey", car la gestion des touches est interne à l'application gérée.

Il te faut donc faire les appels grâce aux DLLs et aux appli exe/OCX Windows, puis reprendre le focus de ton appli.

Pour une opération de Copier/coller (Ctrl C/Ctrl V) sur une application externe, il faut envoyer un script clavier après avoir fait un focus sur l'appli ciblée.

Ce genre de programmes existe mais le mode de fonctionnement du VB implique un fonctionnement exclusif en mode fenêtré, ce qui bloque son fonctionnement lors d'un passage sur une autre application. Le mode silencieux du VB peut être possible (fonctionnement en arrière-plan) mais ici, il faut jouer avec les routines système de Windows... ce qui rend plus ou moins incompatible les différentes versions de Windows.

Je ne dis pas que cela est impossible avec les interceptions système, mais que le résultat sera hasardeux.

Peut-être que ces actions sont faisable avec des SendMessage() ciblés, mais cela constituerait une faille sécuritaire de taille pour l'utilisation privative des applications Windows.

0
Whismeril Messages postés 19018 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 655
Modifié le 24 janv. 2023 à 10:23

Bonjour 

Malgré la clarté de ta question, j'ai compris que tu voulais faire dialoguer deux programmes VB entre eux...

hum, je ne pense pas , il a écrit 

de faire communiquer une appli (VB6) avec un programme tiers 

tiers ne veut pas forcément dire vb6, et surtout tend à faire penser "qui n'est pas codé par jc".

D'autant que si jc avait la main sur la deuxième application, il y aurait beaucoup plus simple que les raccourcis clavier, une API des pipes pu encore un dialogue réseau etc...

D'ailleurs, ce logiciel tiers il n'a pas d'API?

0
jc2nantes Messages postés 23 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 16 octobre 2023
Modifié le 24 janv. 2023 à 11:38

En effet le second soft n'est pas de moi et pour ce qui est de savoir si il y a API ou pas, c'est d'un niveau que je ne maitrise pas de toutes façons !

Bon ça me semble plutôt compliqué cette histoire...

Merci quand même à vous 2 pour vos réponses !


0
Whismeril Messages postés 19018 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 655
24 janv. 2023 à 12:11

Ben non, utiliser une api (si elle existe) est le plus simple.

Ça revient à inclure une dll ou un ocx dans ton programme et piloter le logiciel via cette inclusion


0
Rejoignez-nous