macro de lancement de logiciel externe

pasquetp

XLDnaute Occasionnel
bonjour,

tout d'abord, mes excuses pour demander de l'aide sur un pb vb et pas vba.

je vous expose le pb et remercie ceux qui voudront participer.

Private Sub Command1_Click()
a = Shell("C:\Windows\system32\mstsc.exe", vbNormalFocus)
DoEvents
Sleep (1000)
SendKeys "192.168.1.3"
DoEvents
Sleep (1000)
SendKeys ("{ENTER}")


'DoEvents
'Sleep (3000)
'SendKeys "user"
'SendKeys "mot de passe"
'DoEvents
'Sleep (1000)
'SendKeys ("{ENTER}")
'DoEvents

End Sub


voyez vous je veux automatiser le lancement du bureau a distance.
au lieu de tout noter a repetition je veux l'automatiser. jarrive a lancer le tse sans pb et a remplir l'adresse ip et a lancer la page. c'est la que ca bloque. jarrive pas a remplir le user et mot de passe . au lieu ca me ramene au bureau principal. sans doute que pour le vba, il croit que ca doit s'appliquer que sur mon bureau. y atil moyen de resoudre le pb

merci
 

Dranreb

XLDnaute Barbatruc
Re : macro de lancement de logiciel externe

Bonjour.
Juste une idée, extrait de l'aide:
AppActivate, instruction


Active une fenêtre d'application.

Syntaxe

AppActivate title[, wait]

La syntaxe de l'instruction AppActivate comprend les arguments nommés suivants :

Élément Description
title Expression de chaîne indiquant le titre dans la barre de titre de la fenêtre d'application à activer. Pour activer une application, vous pouvez utiliser l'identificateur de tâche renvoyé par la fonction Shell à la place de l'argument title.
wait Facultatif. Valeur de type Boolean qui indique si l'application appelante est active avant d'en activer une autre. Si la valeur est False (valeur par défaut), l'application indiquée est immédiatement activée, même si l'application appelante n'est pas active. Si la valeur est True, l'application appelante attend de devenir active, puis active l'application indiquée.



Remarques

L'instruction AppActivate rend active l'application ou la fenêtre nommée, mais ne l'agrandit ni ne la réduit. La fenêtre d'application cesse d'être active dès que l'utilisateur exécute une action qui entraîne la fermeture de la fenêtre ou l'activation d'une autre. Utilisez la fonction Shell pour démarrer une application et définir le style de la fenêtre.

Pour rechercher l'application à activer, les chaînes de titre de toutes les applications sont comparées avec celle de l'argument title. Si aucun titre ne correspond exactement à l'argument, une application dont le titre commence par la valeur de l'argument title est activée. Si plusieurs applications ont pour nom l'argument title, l'une d'entre elles est activée arbitrairement.
J'utilise avec succès cette instruction (depuis VBA il est vrai) pour piloter la calculatrice.
Cordialement.

Ah mais attendez, je me souviens que je pilote aussi Paint depuis VB6. Je regarde et vous tiens au courant.

Oui, c'est ça aussi. Code VB6 et non VBA:
VB:
Private Static Sub BtPaint_Click()
Const PgmPaint = "C:\WINDOWS\System32\MSPaint"
Dim PaintId As Variant, Z As String, Top As Long, Problème As String
Caption = "Couleurs - Transmettre à Paint"
Z = ""
Do:
   If IsEmpty(PaintId) Then
      PaintId = InputBox(Z & "Entrez le titre exact d'une fenêtre Paint existante," _
         & vbLf & "sinon Couleurs va tenter de lancer :" & vbLf & """" & PgmPaint & """.", _
         Caption, "Sans titre - Paint"): Z = ""
      If PaintId = "" Then
         On Error Resume Next: PaintId = Shell(PgmPaint, 1): Problème = Err.Description: On Error GoTo 0
         If Problème <> "" Then
            MsgBox "Shell """ & PgmPaint & """: " & Problème & vbLf _
               & "Veuillez lancer Paint par vous-même.", vbCritical, Caption
            PaintId = Empty: GoTo Épilogue: End If
'         MsgBox Z & "MSPaint N°" & PaintId & " lancé…" & vbLf & "Bon pour transmission comme" & _
'            vbLf & "couleur personnalisée courante…", vbInformation, Caption
         Z = "MSPaint N°" & PaintId & " lancé…": End If: End If
   Top = GetTickCount
   While GetTickCount < Top + 1000: DoEvents
      On Error Resume Next: AppActivate PaintId, Wait:=False: Problème = Err.Description: On Error GoTo 0
      If Problème = "" Then Exit Do
      Wend
   If TypeName(PaintId) = "String" Then Z = "Fenêtre """ & PaintId & """" Else Z = "MSPaint N°" & PaintId
   Z = Z & " introuvable." & vbLf: PaintId = Empty
   Loop
SendKeys "%CM%D%R" & TR.Text & "%V" & TV.Text & "%B" & TB.Text & "~", Wait:=True
'If Z <> "" Then MsgBox Z, vbInformation, Caption
Épilogue: Caption = "Couleurs"
End Sub
À+
 
Dernière édition:

Statistiques des forums

Discussions
312 329
Messages
2 087 333
Membres
103 519
dernier inscrit
Thomas_grc11