|
Site |
Cours VB.net |
|
|
|
Lancer une application, une page Web. |
|
|
Comment lancer une autre application, un autre programme ?
L'ancienne méthode VisualBasic toujours valable: Shell
Shell lance un programme exécutable.
Id=Shell (NomdeProgramme) 'lance l'application NomdeProgramme
on peut utiliser aussi:
Id=Shell( NomdeProgramme, TypedeFenetre, Wait, TimeOut)
TypedeFenêtre utilise l'énumération AppWinStyle pour définir le type de fenêtre de l'application lancée: AppWinStyle.MaximizedFocus ouvre par exemple l'application en plein écran.
Si vous souhaitez attendre la fin du programme avant de continuer, vous devez définir Wait à True.
TimeOut est le nombre de millisecondes à attendre pour la fin du programme si Wait est True.
Exemple:
ID = Shell("""C:\Program Files\MonFichier.exe"" -a -q", , True, 100000)
Dans une chaîne une paire de guillemets
doubles adjacents ("") est interprétée comme un caractère de guillemet
double dans la chaîne. Ainsi, l'exemple précédent présente la chaîne suivante à
la fonction Shell :
"C:\Program Files\MonFichier.exe" -a -q
La fonction AppActivate rend active l'application ou la fenêtre définie par son nom ou son Id (Numéro indentificateur).
Dim ID As Integer
On peut utiliser:
AppActivate("Untitled - Notepad")
ou
ID = Shell(NOTEPAD.EXE",
AppWinStyle.MinimizedNoFocus)
AppActivate(ID)
On peut utiliser la Classe 'Process' du
Framework.
La Classe Process fournit l'accès à des processus locaux ainsi que distants, et vous permet de démarrer et d'arrêter des processus système locaux.
Classe de nom à importer :Imports System.Diagnostics
On peut instancier un Process
Dim monProcess As New Process()
Ensuite il faut fournir à la classe fille
StartInfo les informations nécessaires au démarrage.
monProcess.StartInfo.FileName = "MyFile.doc"
monProcess.StartInfo.Verb = "Print"
monProcess.StartInfo.CreateNoWindow = True
Enfin on lance le process
monProcess.Start()
Noter la puissance de cette classe: on donne le nom du document et VB lance l'exécutable correspondant, charge le document, effectue certaines actions.
Dans l'exemple du dessus on ouvre Word on y charge MyFile , on l'imprime, cela sans ouvrir de fenêtre.
On peut utiliser la classe Process en statique (sans instanciation)
Process.Start("IExplore.exe")
Process.Start(MonPathFavori)
ou en une ligne:
Process.Start("IExplore.exe", "http//:developpez.com")
En local on peut afficher un fichier html ou asp
Process.Start("IExplore.exe", "C:\monPath\Fichier.htm")
Process.Start("IExplore.exe", "C:\monPath\Fichier.asp")
On peut enfin utiliser un objet StartInfo
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
Process.Start(startInfo)
startInfo.Arguments = "hrrp//:developpez.com"
Process.Start(startInfo)
Des propriétés du processus en cours permettent de connaître l'Id du processus (Id) les threads, les modules, les Dll ,la mémoire , de connaître le texte de la barre de titre (MainWindowsTitle)..
On peut fermer le processus par Close ou CloseMainWindows
On peut instancier un 'Process' sur une application déjà en cours d'exécution avec GetProcessByName et GetProcessById:
Dim P As Process() =
Process.GetProcessesByName("notepad")
' On peut récupérer le processus
courant.
Dim
ProcessusCourant As Process = Process.GetCurrentProcess()
' Récupérer toutes les instances de Notepad qui tournent en local.
Dim localByName As
Process() = Process.GetProcessesByName("notepad")
' Récupérer tous les processus en cours
d'exécution grâce à GetProcesses:
Dim localAll As
Process() = Process.GetProcesses()
Vous pouvez afficher des données statistiques et des informations sur les processus en cours d'exécution sur des ordinateurs distants, mais vous ne pouvez pas appeler Kill, Start, CloseMainWindows sur ceux-ci.
|
|
|
|
|