IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment écrire dans un programme externe


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut Comment écrire dans un programme externe
    Salut, voilà, en vb.net, j'ai créer une fenêtre avec un textbox dedans, j'ai compiler le tout et récupérer le exe.
    Ensuite j'ai créer un nouveau projet vb.net et je souhaiterais depuis se nouveau programme écrire dans le suivent (le exe)

    Mais je ne sais pas comment accéder à l'autre programme compiler (exe) et pas comment écrire dans le texbox.
    Savez-vous comment procéder ?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Je vois deux solutions : soit créer un fichier commun qui sera manipulé par les deux programmes, soit passer en paramètre ton texte au lancement de ton application Textbox, ce qui est à mon sens plus propre (exemple en C#, à adapter).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    En faite ma fenêtre externe dois pouvoir recevoir du texte n'importe quand !
    C'est une fenêtre Débug en faite, depuis mon programme sous VB.Net, j’enverrais le texte vers cet fenêtre de sortie.

    J'ai pas envie de passer par un fichier non, je veux lui envoyer le texte directement voilà

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Il y a la fonction Debug.writeLine qui s'affiche dans la fenêtre de sortie dans visual studio si tu veux.
    Mais ca ne sera accesible que par toi du coup.
    Sinon il faut voir la gestion des socket pour un systeme de tchat, voir ici

  5. #5
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Non je veux pas faire ça, je connais le débug de VB
    Je veux faire le mien

    J'ai trouvé ça pour ouvrir mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FenêtreDébug = Shell("C:\Users\xxx\Desktop\Débug.exe", vbNormalFocus)
    Mais je ne sais pas comment écrire dedans mon texbox !
    Je ne sais pas non plus comment fermer mon programme !

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Si tu veux interagir avec d'autre programmes compilés tu peux regarder du côté des API.


    ---> Voilà un exemple qui permet d'écrire dans un fichier texte ouvert dans notepad :

    http://www.developpez.net/forums/d12...envoyer-texte/

    ---> La bible des fonctions Natives Window (Pinvoke ou API) :

    http://www.pinvoke.net/


    PS : tu devras certainement utiliser l'API GetClassName lorsque tu auras récupérer le handle de ta fenêtre de programme

    Il n'existe pas d'autres solutions pour ce genre d'interaction avec un binaire compilé !

    +

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    moi j'aurais plutot vu parmis tcp ip/wcf/canaux nommés ; technologies qui permettent de faire du dialogue entre 2 processus, pour certaines même entre 2 pc différents
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    moi j'aurais plutot vu parmis tcp ip/wcf/canaux nommés ; technologies qui permettent de faire du dialogue entre 2 processus, pour certaines même entre 2 pc différents
    Je ne connaissais pas ..o_O

    Merci, je vais glaner l'info de ce pas.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    wcf est une surcouche de tcp/ip
    le tcp/ip permet le dialogue sur le réseau, mais ca fonctionne très bien en local aussi

    les canaux nommés j'ai jamais utilisé mais à priori c'est pour du local seulement, et ca serait peut etre plus simple à mettre en oeuvre


    enfin tout ca est plus courant que l'utilisation d'api je pense ^^
    le cas typique c'est entre un service windows qui permet l'unicité du traitement et une appli dans system tray qui permet de faire le lien entre l'utilisateur et le service (report et command)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Hum merci mais ça va pas m'aider je pense......

  11. #11
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Lord - Nelson Voir le message
    Hum merci mais ça va pas m'aider je pense......
    C'est en se renseignant et en lisant des ressources techniques qu'on apprends.....

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Lord - Nelson Voir le message
    Hum merci mais ça va pas m'aider je pense......
    pourquoi donc ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bha... pas simple quoi...

    wallace1 ton message avec ton premier lien ma été en faite très utile et mis +1, merci
    Si ce n'est que c'est pas dans un fichier mais bien dans le bloc note que ça écrit hein

    J'ai essayer ça et ça fonctionne bien mais ça écrie qu'une seule fois et une seule ligne peut importe le nombre de commande Send:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Imports System.Runtime.InteropServices
     
    Public Class Form1
     
        <DllImport("User32.dll")> _
        Public Shared Function SendMessage(hWnd As IntPtr, uMsg%, wParam%, lParam$) As Integer
        End Function
     
        <DllImport("user32.dll")> _
        Public Shared Function FindWindowEx(hwndParent As IntPtr, hwndChildAfter As IntPtr, lpszClass$, lpszWindow$) As IntPtr
        End Function
     
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim processes As Process() = Process.GetProcessesByName("Débug")
            If processes(0) IsNot Nothing Then
                Dim Handle As IntPtr = FindWindowEx(processes(0).MainWindowHandle, New IntPtr(0), "WindowsForms10.EDIT.app.0.2bf8098_r13_ad1", Nothing)
                SendMessage(Handle, 12, 0, "Ceci est 1 test !")
            End If
        End Sub
     
    End Class
    A noté que c'est quand même assez pointu car il faut rechercher le nom de la classe du contrôle, ici WindowsForms10.EDIT.app.0.2bf8098_r13_ad1 pour mon cas que j'ai trouver grace à AutoIt
    Sa fonctionne mais avec petit problème cité, ya moyen de faire quelque chose avec tous ça quand même.

    Donc "Débug" c'est le texte de la form, le titre quoi, et "WindowsForms10.EDIT.app.0.2bf8098_r13_ad1" le nom du contrôle (ici nommer dans mon projet sous VB.Net -> texbox1).
    Les autres truc j'y comprends rien xd

  14. #14
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,

    Serait-il possible d'avoir une petite aide svp
    Sa écris dans mon texbox mais une seule fois et c'est tout !

    Comment faire pour ajouter du texte dedans ?

Discussions similaires

  1. Comment écrire dans l'historique d'un programme
    Par bbecrit dans le forum AS/400
    Réponses: 2
    Dernier message: 01/04/2014, 14h19
  2. Réponses: 3
    Dernier message: 24/01/2014, 12h52
  3. Réponses: 3
    Dernier message: 02/11/2009, 21h40
  4. [XML] Comment écrire dans un xml??
    Par ffmlgraphics dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/07/2005, 10h10
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo