Remplissage auto de mon logiciel par autre méthode que SENDKey

pedrag31

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Bonjour Zombe, Bonjour le forum,

Je suis loin d'être expert en la matière mais j'ai eut qques expériences avec des interfaces à réaliser entre Excel+VBA et d'autres logiciels.

Je retiens que la meilleure façon de piloter un autre logiciel depuis VBA est d'utiliser un API (définition Wikipédia), un interface de programmation souvent mis à disposition gratuitement par l'éditeur du logiciel (Oracle?) et qui permet de piloter celui-ci avec des commandes VBA et donc, depuis Excel.

Regarde de ce coté là peut être, si tu trouves un API en VBA pour ton logiciel, alors tu peux appeler cet API dans tes références VBA ("Outils/Références...") et utiliser les commandes VBA spécifiques à ton logiciel pour le piloter depuis Excel.
Tu peux également jeter un oeil dans les Références existantes de VBA pour voir si ton logiciel y apparaît...

En espérant te donner un début de piste...

Bonne journée :)
 

zombe

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Salut pedrag31

Merci pour votre piste.
Passer par API ORACLE suppose qu'il faut établir un lien entre excel et les bases oracles du logiciel bancaire.
Pour des raisons de sécurité, nos dirigeants ne souhaite pas les connexions du logiciel bancaire avec des logiciels externes donc cette methode ne pourras pas marcher.
J'aurai souhaité une methode qui tend vers les sendkeys mais plus rassurant.
Voir l'exemple du code ci-dessous:
il permet d'ouvrir le logiciel bancaire et de saisir les données excel simplement.
Code:
Sub activePack()
'On Error GoTo gestionerreur
If MsgBox("ASSUREZ-VOUS QUE VOTRE", vbYesNo, "Demande de confirmation") = vbYes Then

AppActivate "NOM LOGICIEL ICI"

'POSITIONNEZ-VOUS SUR LE MENU SIMPLIFIE IGOR SOUHAITE
For I = 3 To 6
    SendKeys Cells(I, 10).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1
Next
    SendKeys "N" & Chr(13), True
    attendre 0.6
    SendKeys "{LEFT}"
    SendKeys "{ENTER}"
    attendre 1
    
For I = 7 To 43
    Select Case I
    Case 16, 17
    If Cells(8, 10) = 3 Then
    SendKeys Cells(I, 10).Value, True
    End If
    Case Else
    SendKeys Cells(I, 10).Value, True
    End Select
    SendKeys Cells(I, 10).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1
    
Next
    SendKeys "+{F3}"
    attendre 1
For I = 44 To 51
    SendKeys Cells(I, 10).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1

Next
    SendKeys "+{F6}"
    attendre 1
    
'For I = 51 To 51
    'SendKeys Cells(I, 10).Value, True
    'attendre 0.6
    'SendKeys "~"
    attendre 1

Exit Sub
gestionerreur:
MsgBox "fichier non ouvert ou réduit dans la barre des tâches : abandon"
End If
End Sub
 

pedrag31

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Re,

Passer par API ORACLE suppose qu'il faut établir un lien entre excel et les bases oracles du logiciel bancaire.

Oui en effet. A noter tout de même que ces connexions peuvent être paramétrées finement, utilisateur par utilisateur, avec des droits en lecture seule ou lecture/écriture, etc... Maintenant, le passage par l'API ORACLE est la seule méthode "rassurante" que je connaisse et qui pourrait te permettre de piloter tes actions sereinement dans le logiciel.

Sinon, je ne vois que Sendkeys :p mais comme tu le dis, c'est pas très fiable...

Bonne journée :)
 

zombe

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Salut pedrag31 et le forum

Merci pour votre réponse rassurante.
Je ne pense pas que nos responsables en charge de la sécurité informatique veuille l'accepter.
Néanmoin on peut essayer pour compter sur les démos et des explications pour voir ce qu'ils en penser.
A part l'API ORACLE dont vous parlez quelle autre information aurez-vous besoin pour la réalisation?
Aussi au cas il n'auront pas l'API n'ait-il pas possible de l'obtenir par téléchargement?
 

camarchepas

XLDnaute Barbatruc
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Bonjour zombe,

J'ai dû piloter une application ne disposant pas d'interface d'entrée,

il existait un bricolage avec sendkey, (Trop aléatoire car en cas d'anomalie de l'application pilotée (Donnée erronnée ou personne inexistante) ou de fenêtre apparaissant aléatoirement ou plein d'autre choses).

Le fait de changer de windows 2000 pour windows vista et plus rien ne fonctionnait.

J'ai donc redéveloppé une petite application à base de l'API user32 dispo dans tous les bons micros.

Ce n'est certainement pas transposable en blocs , mais avec un peu de test et du temps cela devrait pouvoir ce faire.

A oui comme toi , je n'ai pas droit à certains accès qui évideraient de tourner autour du pot.

Bon , je lache un premier indice :

' La fonction SendtMessageA (renommée ici Envoie_Message) permet d'interagir avec une fenêtre dont on indique l'ID;
' Avec par exemple 16 comme argument wMsg (message WM_CLOSE), on ferme la fenêtre.
Declare Function Envoie_Message Lib "user32" Alias "SendMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

N'ayant pas accès à ton application , il faudra certainement un grand nombre de tests avant de pouvoir écrire la moindre info correctement.

Une cartographie des fenêtres et des champs de l'application sera réalisée.

Mais en sécurisant par une relecture de l'info, le résultat est de 99.90 % et un arrêt stop permet d'analyser et de remédier à l'anomalie.

sur des séries de 30 000 injections (soit 10 infos par dossiers) , pas d'anomalies de ''saisie'' , juste des infos incorrectes que l'on peut quelque fois dépister avant injection.

Bon j'arrête là , si tu es intéressé , il faudra relever les manches , car je ne pourrais être qu'un guide aveugle*.
 

zombe

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Salut camarchepas

Ma journée a bien commencé quand j'ai lu ta réponse.
Elle est pleine d'espoir pour moi. Suis vraiment interessé par votre solution.
Avec le lien ci-dessous, vous aller avoir des explications sur le fonctionnement de mon logiciel et son lien avec excel.
Egalement vous trouverez dans le fichier joint du même lien une image de mon logiciel et les différents champs dans lesquels les informations de mon fichier excel doivent être renseignées.
Faut-il forcement l'IP de mon logiciel?
Dans mon code sendkey, cette partie du code
Code:
AppActivate "NOM DE MON LOGICIEL"
permettait d'activer mon logiciel et la suite du code entrainait la saisie des informations excel.
Cette méthode d'activer mon logiciel ne peut-elle pas remplacer la méthode IP?
Remplissage auto de mon logiciel par autre méthode que SENDK : Excel - VBA
Je reste à votre disposition pour toutes informations complementaires.
Pour les tests, on peut utiliser yahoo messenger.
A bientôt
 

zombe

XLDnaute Occasionnel
Re : Remplissage auto de mon logiciel par autre méthode que SENDKey

Salut Camarchepas et le forum

Sauf erreur ou omission de ma part, j'ai toujours pas eu de vos nouvelles concernant ce sujet.
J'espère que tout va bien et que j'aurai l'occasion de vous lire sur ce sujet.
Cdlt
 

Discussions similaires

Réponses
2
Affichages
340
Réponses
1
Affichages
228