Il ya deux façons de lancer un programme exécutable indépendant à partir d'un programme Visual Basic. Une solution est d'utiliser la commande Visual Basic "shell" . L'autre est d' utiliser l'interface de programmation d'application Windows » CreateProcess " (API). Les deux seront lancer avec succès le programme exécutable externe , mais " CreateProcess " donne au programmeur plus de contrôle sur la façon dont le système d'exploitation gère le programme. Instructions
de Commandes Shell
1
Démarrez un nouveau projet EXE standard Visual Basic . Le " Form1 " qui est créé par défaut, ajoutez un bouton de commande et nommez-le " cmdNotepad . "
2
code l'événement click de bouton de commande dans le " cmdNotepad_Click ()" événement . Déclarer une variable de type long pour contenir la valeur de retour de la commande Shell . Pour lancer le programme Bloc-notes Windows , tapez " lngReturn = Shell : " . ("C \\ Windows \\ System32 \\ Notepad.exe ) "
3
spécifier comment vous souhaitez que l'application Bloc-notes pour ouvrir dans la commande Shell. Les options sont: vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus et vbNormalNoFocus . Spécifiez une de ces options comme second paramètre à la commande Shell comme " Shell (" C: \\ Windows \\ System32 \\ Notepad.exe " , vbNormalFocus ) . "
4
obtenir l'ID de processus de la valeur de la commande Shell retourner . Comme indiqué à l'étape 2, « lngReturn " contiendra l'ID de processus de Windows attribué pour l'application Notepad qui vient d'être lancé à partir de la commande Shell . Avec l'ID de processus , vous pouvez effectuer d'autres tâches dans votre programme exemple à vérifier que le processus est toujours en cours d'exécution avant de fermer l'application Visual Basic.
CreateProcess
5
départ un nouveau projet EXE standard Visual Basic . Le " Form1 " qui est créé par défaut, ajoutez un bouton de commande et nommez-le " cmdNotepad . " Ajouter des types définis par l'utilisateur nommé " PROCESS_INFORMATION " et " STARTUPINFO » dans la section « Déclarations » de « Form1 ». Ces structures sont utilisées pour grouper des données et des paramètres de la fonction " CreateProcess " nécessaires.
6
Ajouter deux constantes qui sont aussi des paramètres de la fonction " CreateProcess " .
Const SYNCHRONIZE = 1048576
Const NORMAL_PRIORITY_CLASS = & H20 &
déclarer des fonctions pour créer l'instance de processus (« déclarer la " " fonction " CreateProcess Private Declare Function CreateProcess Lib " kernel32 " Alias " CreateProcessA " "), ouvrir le processus (« Private Declare Function OpenProcess Lib" kernel32.dll ""), terminer le processus (« Private Declare Function TerminateProcess Lib" kernel32 "") et de fermer la poignée (« Private Declare Function CloseHandle Lib" kernel32 "") .
7 Code de
l'événement click de bouton de commande dans " cmdNotepad_Click (). " Définir une variable de type PROCESS_INFORMATION , STARTUPINFO , une chaîne pour représenter nul et deux longs pour les valeurs de retour . Passez le Bloc-notes. exe à la fonction " CreateProcess ": .
CreateProcess ( sNull , " Bloc-notes " , ByVal 0 & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , sInfo , pInfo )
8
terminer le processus avec " TerminateProcess ( pInfo.hProcess , 0 & ) . " Refermez la poignée pour le fil avec " CloseHandle ( pInfo.hThread ) " et au processus de « CloseHandle ( pInfo.hProcess ) . " < br >