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:
Si j'ouvre une fenetre dos et lance la commande (commandStr) manuellement tout fonctionne comme prévu.
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"
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
Partager