2010-08-27 5 views
2

Ça va être difficile d'essayer d'expliquer cela, mais s'il vous plaît nu avec moi ...Process.Start Problème

J'utilise Process.Start pour exécuter Convert.exe. Le but de ce programme est de convertir tous les fichiers qui se trouvent dans le dossier de l'exe. Donc, quand je l'utilise normalement, je copie coller un fichier dans le même dossier que Convert.exe, puis exécutez Convert.exe. Convert.exe va créer un nouveau fichier "converti" dans le même dossier. J'essaie d'automatiser ce processus fastidieux. Un utilisateur sélectionne un fichier qui doit être converti à partir de FolderA, je le copie dans le même dossier que Convert.exe et j'utilise process.start (Convert.exe) pour l'exécuter. Juste pour être clair, ce "Convert.exe" n'accepte aucun argument.

Le problème: "Convert.exe" ne convertit pas les fichiers dans son dossier. Au lieu de cela, il convertit tous les fichiers dans FolderA pour une raison étrange. Je ne sais pas pourquoi il a choisi ce dossier, je n'ai même jamais essayé de l'envoyer comme argument ou rien.

Voici le code que j'ai:

Dim techInfo As New System.IO.FileInfo(itm.strFilePath)    
techInfo.CopyTo(ConverterPath & techInfo.Name) 

Dim procInfoConvert As New ProcessStartInfo 
procInfoConvert.CreateNoWindow = False 
procInfoConvert.Arguments = "" 
procInfoConvert.FileName = ConverterPath & "Convert.exe" 

Dim procConvert As Process = Process.Start(procInfoConvert) 

Je l'ai fait un test où je copier collé un fichier dans le dossier "Convert.exe" puis exécutez simplement ce code:

process.start(ConverterPath & "Convert.exe") 

Le exe ne renvoie rien, même s'il n'y avait pas de fichiers dans le dossier.

La seule chose que je peux penser est que lorsque Process.Start est exécuté, il copie le fichier à un autre endroit et il fonctionne à partir de là ...

Toute personne idées?

Merci

Répondre

2

Essayez ceci:

procInfoConvert.WorkingDirectory = ConverterPath 

Ça va définir le processus pour démarrer dans le répertoire dans lequel il est contenu dans, au lieu du répertoire courant.

+0

Wow, c'était facile lol Thx: D – Iggy

+0

De rien :) c'est pour ça qu'on est là! – Mark

Questions connexes