Bonjour,
je recherche à lancer une commande externe (exiftool.exe) dans une fenetre DOS et récupérer les données exif dans mon application VB.Net



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
22
23
24
25
26
27
28
Imports System.Text
 
 
Public Class Form1
 
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
        TextBox1.Text = Exif_External(OpenFileDialog1.FileName)
    End Sub
 
    Public Function exif_External(ByVal ImageFile As String)
 
        Dim exifExe As String = "exiftool.exe"
        Dim ApplicationDir As String = Application.StartupPath.ToString
        Dim commandStr = ""
        Dim retString As String = ""
        Dim exifOutputFile As String = ImageFile + ".txt"
 
 
        commandStr = Chr(34) + ApplicationDir + "\" + exifExe + Chr(34) + " " + Chr(34) + ImageFile + Chr(34) + " > " + Chr(34) + exifOutputFile + Chr(34)
        Shell(commandStr, AppWinStyle.Hide)
 
        Return "Rien pour le moment"
    End Function
 
End Class


Lors de l'éxécution la variable commandStr vaut:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
"c:\Users\pierre\Visual Basic\exifTool_test\exifTestTool\exifTestTool\bin\Debug\exiftool.exe" "C:\Users\pierre\Visual Basic\exifTool_test\exifTestTool\exifTestTool\clock.JPG" > "C:\Users\pierre\Visual Basic\exifTool_test\exifTestTool\exifTestTool\clock.JPG.txt"
Si j'ouvre une fenetre dos et lance la commande (commandStr) manuellement tout fonctionne comme prévu.
Mais dans mon code le fichier texte n'est pas créé...Le programme reste bloqué. Il ne me crée pas le fichier txt qui contient les données exif.
Ou est l'erreur? Pourquoi je ne peut pas lancer la commande depuis mon application?


Y aurait il une autre méthode "plus propre" pour lancer un programme en ligne de commande et récupérer la sortie dans mon vb sans passer par la redirection de la sortie dans un fichier (le > )


Merci pour vos réponses