begin process at 2012 02 15 21:46:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > OUVRIR UNE APPLI EN .EXE DANS UNE FORM EN VB2005

OUVRIR UNE APPLI EN .EXE DANS UNE FORM EN VB2005


 Information sur la source

Note :
9,63 / 10 - par 8 personnes
9,63 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Source .NET ( DotNet ) Classé sous :api, process, shell, setparent, setwindowpos Niveau :Débutant Date de création :13/07/2007 Vu / téléchargé :8 689 / 920

Auteur : spoty

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Adamo901 a demandé "Si c'est possible, proposer un code en VB2005".
Je l'ai fait avec des petits plus.
En résumé: ouvrir un exe(notepad pour l'exemple),le mettre dans la fenêtre, le redimentionner et repositionner, suprimer la barre de titre, le mettre dans un textbox et le fermer pour pouvoir recommencer.


 Conclusion

Je suis novice en VB2005, je ne sais pas si mon code est très ... .mais pour moi ça marche bien et sans bug.
Merci par avance, pour vos avis et commentaires.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) BLOQUE ECRAN ET MÊME PLUS AVEC MOT DE PASSE.( INTERDIT AUX...
Source avec Zip Source avec une capture Source .NET (Dotnet) TRACKBARPLUS , UN CONTROLE PERSONNALISÉ REDIMENTIONABLE AVEC...

 Sources de la même categorie

Source avec Zip CALCULATRICE par TPB
Source avec Zip Source .NET (Dotnet) PIERRE PAPIER CISEAUX par Ultrabytes
Source avec Zip Source avec une capture UN PATCH EN VB (V3) par PhoenixBytes
Source avec Zip Source .NET (Dotnet) [VB.NET 2008] EXECUTION MULTITHREAD DE PLUSIEURS FONCTION À ... par ShadowTzu
Source avec Zip Source avec une capture MULTITHREADING ACTIVEX par Philippe734

 Sources en rapport avec celle ci

Source avec Zip PROCESSPRIORITY par XelectroX
Source avec Zip Source avec une capture FENÊTRE ALWAYS ON BOTTOM par zavier666
Source avec Zip Source avec une capture AFFICHER DES INFOS SUR LE BUREAU AU MOYEN D'UNE FORM TRANSPA... par zavier666
Source .NET (Dotnet) EXÉCUTION D'UN PROGRAMME ET ATTENDRE LA FIN DE L'EXÉCUTION D... par eldim
Source avec Zip Source avec une capture FERMER UN FICHIER OUVERT PAR UNE AUTRE APPLICATION par EBArtSoft

Commentaires et avis

Commentaire de pc152 le 14/07/2007 12:40:38

Source très bien, petit note j'ai mit excel au lieu du bloc note, cela fonctionne en partie mais je ne peux pas saisir dans les cellule ni me servire des scroll bar, si tu peu voir d'ou cela provient ;)

Commentaire de spoty le 14/07/2007 23:31:42

bonsoir PC152
Je n' ai pas excel, donc je ne peux pas faire de test. Je connais très peu VB2005 et les languages de moins de 10 ans et même plutôt 15.
(Je pianote en VB2005 depuis seulement 5 jours).
Pour écrire dans notepad avec le clavier pas de problème, mais impossible d'écrire en passant par le code !!!(je ne connais pas la solution).
Il y a apparemment un problème de handle mais je n'en suis pas sure du tout.
J'ai remarqué que une fois le programme capturé il apparaissait nulle part en child dans la form ou dans la textbox. C'est surement l'origine de ton problème.
J'espère qu'un esprit éclairé pourra nous aider à résoudre cette énigme.
Désolé de ne pouvoir d'aider .
A+

Commentaire de TigerFab le 15/07/2007 12:25:57

Belle source, simple et efficace
bravo

Commentaire de Dnx le 16/07/2007 09:44:39

Hello, sympa la source :)

mais je n'arrive pas a démarrer une application sur le réseau...
avec le shell, il ma lance une erreur "fileNotFoundException"
par contre en utilisant le Process.start, la pas d'erreur mais le SetParent ne marche plus :(


une idée?

merci ;)

Commentaire de spoty le 16/07/2007 16:57:11

Bonjour Dnx
Personellement, j'ai un problème avec le retour de valeur de Handle et Id avec Process c'est pour celà que j'ai contourné le bugg avec shell.
Je viens de tester un autre contournement qui a l'air de marcher:
mettre un System.Threading.Thread.sleep(100)  ou même 200 avant de récupérer l'Handle ou l'Id.
Sinon je n'ai pas fait de test réseau c'est hors de mes connaîssances actuelles.
Si tu peux m'envoyer ton code modifié en MP,j'y jetterai un oeil histoire de m'instruire.
Je pense pouvoir faire bientot une mise à joue de la source avec fonction "Ecrire dans l'application"(par code).
A+

Commentaire de fdiedler2000 le 17/07/2007 13:44:07

Salut, j'ai deja créé un programme qui fait la meme chose et j'ai testé ta source et je rencontre le meme probleme :

Ca ne marche qu'avec des process de Windows (Notepad, aide,...) avec d'autre programmes genre FileZilla, Dreamweaver...

Mais le plus bizarre ca marche très bien avec Excel et Word mais pas avec Outlook !

Avez vous une idée ?

Commentaire de fdiedler2000 le 17/07/2007 13:45:06

Désolé j'ai pas fini ma phrase :

Je disais avec Filezilla, Dreameweaver ou autre ca ne marche plus, Le handle vaut 0 ...

Commentaire de spoty le 18/07/2007 03:41:42

Bonsoir fdiedler2000
Si tu ne l'as pas déjà fait , essaie avec process.start, en mettant System.Threading.Thread.sleep(100) ou même (200) avant de récupérer la valeur de Handle. Ca permet parfois de récupérer la bonne valeur au lieu de Zéro.Je debut en VB2005, je n'ai pas encore assez de connaissance pour approfondir le problème.J'espère qu'une âme charitable aura la gentillesse de nous éclairer de ses lumières.

A+
Spoty

Commentaire de fdiedler2000 le 18/07/2007 11:13:53

Malheureusement ca ne marhce pas non plus... Si quelqu'un à une idée qu'il n'hesite pas :)

Commentaire de xav2303 le 21/10/2009 21:33:23 10/10

perso j'ai rajouter comme proposé ci dessus des System.Threading.Thread.Sleep a quelque endroit et ca marche impec' ;)

j'ai modifier à cet endroit :

  Private Sub bnlancer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnlancer.Click
        'lignes de code prévues au départ mais l'Id obtenue est fausse
        '*************************************************************
        'procap.StartInfo.WindowStyle = ProcessWindowStyle.Normal
        'procap.StartInfo.FileName = "notepad.exe"
        'procap.Start()
        'hInst = procap.Id

        'en faisant comme ça , c'est peut-être pas très ..... mais ça marche
        hInst = Shell("C:\Program Files\OS Info 1.0 Bêta\OS Info.exe", AppWinStyle.NormalFocus) 'lance notepad et récup de l'Id
        System.Threading.Thread.Sleep(300)
        procap = Process.GetProcessById(hInst) 'Retourne un nouveau composant Process, en fonction de l'identificateur de notepad
        System.Threading.Thread.Sleep(200)
        hWndApp = procap.MainWindowHandle 'récup de l'handle
        nomproc = procap.MainWindowTitle 'récup du titre  -- inutile--
        bncap.Enabled = True
        bnlancer.Enabled = False
    End Sub


voilà !



Lvxie
La facilité et la légerté
http://www.lvxie.eg2.fr/
lvxie@hotmail.fr

Commentaire de Polack77 le 22/07/2010 17:25:43 10/10

Bonjour,

Déjà très belle source MERCI :) simple et efficace. Par contre en l'état si on execute la commande cmd et non notepad (ou si le système est très occupé sa ne fonctionne plus (et ajouter un sleep dans tout cas est dommage, surtout qu'on ne sait pas à l'avance combien de temps vas prendre le système a affiché cette fenêtre :/). J'ai trouvé comme solution de tester sa et d'attendre 100 ms entre chaque test (et donc éviter de surcharger inutilement le système, en prime il n'est plus utile d'utilisé la commande shell :)). Enfin berf voila la mise à jour que je propose :


Private Sub bnlancer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnlancer.Click
        procap.StartInfo.WindowStyle = ProcessWindowStyle.Normal
        procap.StartInfo.FileName = "notepad.exe"
        'procap.StartInfo.FileName = "cmd"
        procap.Start()
        hInst = procap.Id

        While procap.MainWindowHandle = 0
            System.Threading.Thread.CurrentThread.Sleep(100)
            Try
                procap = Process.GetProcessById(hInst) 'Retourne un nouveau composant Process, en fonction de l'identificateur de notepad
            Catch ex As Exception
                'Le programme exécuter est déjà terminé
                Exit Sub
            End Try
        End While
        hWndApp = procap.MainWindowHandle 'récup de l'handle
        nomproc = procap.MainWindowTitle 'récup du titre  -- inutile--
        bncap.Enabled = True
        bnlancer.Enabled = False
    End Sub

Commentaire de didine13 le 23/08/2010 22:33:03 10/10

Pas encore en 2005 mais très très bien

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Kill Process Sous Win2k d'une app lancée avec shell() [ par soulheaven ] voilà je cherches à fermer une application que g lancé avec shell()!!!j'utilises la fonction SendMessage mais ça marche pas sous win2k!! il faudrait q Enregistrement d'une dll sur windows xp avec un compte utilisateur n'ayant pas de droit [ par vaneri2004 ] Bonjour tout le monde,Je me creuse la tête depuis quelques temps pour trouver le moyen d'enregistrer une dll sur un chti Windows Xp avec un compt comment faire pour lire le texte en sortie de mon shell ?? [ par patfac1 ] Bonjour, J'ai écris quelques lignes ( en vb.net ) pour lancer un shell depuis mon appli et savoir quand elle se termine. Maintenant, il faudrait qu Problème sur API OpenProcess [ par violent_ken ] Violent Ken Bonjour, je cherche à récupérer des informations sur les processus lancés. J'utilise donc les API Openprocess, EnumPro Net send sans shell ni API [ par kazaam ] BonjourEst ce qu'il est possible de faire un net send en vb.net sans API ni Shell?MerciKazaam Setparent dans VB .NET 2005 [ par math083 ] Salut tout le monde !J'ai un petit problèmeAvant sous vb 6 je pouvais utiliser la fonction setparent en utilisant l'api : Declare Function SetParent L api SetWindowPos [ par JeffC1977 ] Salut... Je veux que mon programme soit toujours en avant des autres programmes. Par exmeple si j'ouvre Word et bien me programme se trouverra toujour CreateObject("Wscript.Shell") et api [ par ayarikhaoula ] salut tout le monde, je veux savoir quelle api vb6 qui peut remplacer CreateObject("Wscript.Shell"). Merci pour votre aide. Bloque l'execution d'un SHELL [ par rocky42 ] Bonsoir j'aimerais savoir si il est possible de remplacer le lancement d'un programme qui a etait aplée par la function shell Exemple La ligne HKEY_


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,997 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales