tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Masterclavat
  • 1 Beitrag von Joshman
  • 1 Beitrag von Nico Graichen
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
1040
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    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
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Brauchst du die Process-Instanz? Wenn nein, probier mal die externe Anwendung über die statische (shared) Methode Process.Start auszuführen.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    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
     

  4. #4
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Das ist sehr leicht:

    Code vbnet:
    1
    
    System.Diagnostics.Process.Start("X:\Programm.exe", "/A")
    Hans1982 bedankt sich. 

  5. #5
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Man hätte sich auch nur mal die Hilfe anschauen müssen:
    http://msdn.microsoft.com/en-us/libr...ess.start.aspx

    Es gibt für Überladungen, wovon 4 potentiell in Frage kommen...
    ... alle übrigens mit Sample
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  6. #6
    Joshman Joshman ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Hamburg
    Beiträge
    19
    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 :
    1
    2
    3
    4
    
    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
    Hans1982 bedankt sich. 
    Träume nicht dein Leben, lebe deinen Traum.

  7. #7
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    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.
     

  8. #8
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    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
     

  9. #9
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Ich komme immer noch nicht weiter
    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
     

  10. #10
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Schreib dir ein Batch-File, dass die Anwendung aufruft und ruf dieses dann über Process.Start auf!
    Hans1982 bedankt sich. 
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  11. #11
    Hans1982 Hans1982 ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Danke für die info

    ich habe das genau so gestern Nacht gelöst

    Gruß Hans
     

Ähnliche Themen

  1. Externes Programm aufrufen
    Von enfera im Forum Coders Talk
    Antworten: 1
    Letzter Beitrag: 28.02.09, 11:29
  2. Externes Javascript aufrufen
    Von markusva im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 15.12.07, 00:48
  3. Antworten: 0
    Letzter Beitrag: 05.09.05, 08:26
  4. Antworten: 3
    Letzter Beitrag: 24.03.05, 12:09
  5. externes programm ueber eggdrop aufrufen
    Von bmc im Forum HTML-Editoren
    Antworten: 1
    Letzter Beitrag: 29.06.04, 08:32