Externes Programm aufrufen

Hans1982

Grünschnabel
Hallo Leute ihr seid meine letzte Hoffnung habe seid 2 tagen ein merkwürdiges Problem.
Ich möchte über meinem VB.net Programm ein externes programm ausführen
Ich übergebe dem der XXX.exe ein übergabewert damit startet das tool ein speziellen modus. Der modus wird gestartet das kann ich sehen. Doch das aufgerufene programm führt die befehle nicht aus und meldet mir ein Programm Laufzeitfeher.

Ich rufe das Programm wie folgt auf:

Dim process1 as new process
process1.StartInfo.Arguments = "/A"
process1.StartInfo.FileName = "C:\ Pfad\xxx.exe"
process1.Start()

Und wenn ich den Modus per Hand öffne funktioniert es.
Mit Vb.net seh ich dass das Programm geöffnet wird, es reagiert aber nicht.
Auch wenn ich VB.net danach beende und das Programm oder tool offen bleibt funktioniert es nicht so wie wenn ich es per hand öffne.
Habt ihr ne idee woran das liegen kann oder kennt ihr ne andere möglichkeit wie ich über Vb.net eine exe ausführen kann und ihr einen übergabewert mitgeben kann

Ich danke euch im voraus

Gruß

Hans
 
Hi

Brauchst du die Process-Instanz? Wenn nein, probier mal die externe Anwendung über die statische (shared) Methode Process.Start auszuführen.
 
Hallo erstmal danke für die schnelle antwort

Kannst du mir bitte ein Beispiel geben wie ich das machen kann mit einem übergabe parameter

Gruß Hans
 
Moin. Nee, ´nabend...

Dim startInfo As New ProcessStartInfo("C:\Programmordner\Das Programm.exe")

Hier erstelle ich eine neue Instanz der Klasse "ProcessStartInfo".
Die Struktur ist im Objektbrowser -"F2-Taste"- unter "System.Diagnostics",

Die Parameter übergebe ich dann so:

startInfo.Arguments = "/a"

Hier wird dann wirklich das Programm gestartet.

Process.Start(startInfo)

Falls du dann aber eine "Art" CMD/BAT Eingabe starten willst, versuche das:

startInfo.UseShellExecute = True

Also alles einmal als Block:.

Code:
Dim startInfo As New ProcessStartInfo("C:\Programmordner\Das Programm.exe")
startInfo.UseShellExecute = True
startInfo.Arguments = "/a"
Process.Start(startInfo)

Die Erklärung für die CMD/BAT Eingabe ist eigentlich:

Die "UseShellExecute" benutze ich für die Programme, die als Konsolenprogramme behandelt werden sollen.
Die Klasse "ProcessStartInfo" verhält sich dann als würde das Programm aus einer Konsole gestartet.

Hoffe konnte helfen.

THX und c.u. aus HH
 
Mit dem zweiten befehl hab ich genau das selbe Problem.
Der Process wird gestartet ich seh ja dass der Process gestartet wird.
Das Problem ist aber dass das Programm(der aufgerufene Process) nicht so funktioniert wie wenn ich den Prozess mit der Hand aufrufen würde.

Ich muss vielleicht dazu sagen das ich mit dem aufgerufenen Programm einen Datenaustauch mit einer Hardware starten möchte d.h ich möchte in einer Steuerung ein Programm übertragen.
 
ich werde fast verrückt!
ich hab das wirklich satt
wenn ich das Programm mit CMD starte funktioniert das mit VB.net wird es zwar aufgerufen aber das Programm sendet meine daten nicht in die steuerung:offtopic::offtopic::offtopic::offtopic:
 
Ich komme immer noch nicht weiter:mad::mad::mad::mad:
kann mir vielleicht jemand verraten wie ich mit vb.net cmd aufrufe und dort vielleicht die exe ausführe.
Weil das seh ich als letzte möglichkeit bin nämlich mit meinem Latein am ende
 

Neue Beiträge

Zurück