none
VB File in C# RRS feed

  • Frage

  • H

    Hi ich habe ein VB File welches ich in C# verwenden möchte. Aber wie kann ich Parameter übergeben?

    Hier ein Bsp von meinem VB File:

    Database = "Perf_Test"	

    Hier mein c# code:

    Process scriptProc = new Process(); scriptProc.StartInfo.FileName = path

    scriptProc.StartInfo.Arguments = ; scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up scriptProc.Start(); scriptProc.WaitForExit(); scriptProc.Close();

    Wie gebe ich jetzt der variable Database einen Wert ?
    Montag, 3. Juni 2013 07:33

Antworten


  • Hallo,

    da der Code anscheinend aus einem SO-Post mit Bezug auf VBScript stammt, nehme ich an, dass Du eine VBScript-Datei über C#-Code ausführen möchtest und diesem Skript ein String-Argument übergeben möchtest.

    Nehmen wir mal an, dass deine VBS-Datei so aussieht:

    message = WScript.Arguments.Item(0)
    MsgBox message

    Dann kann ein Aufruf aus C# mit Argument-Übergabe so aussehen:

    var vbsFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "ShowMessage.vbs");
    var argument = String.Format("\"{0}\"", "Hallo Welt!");
    Process.Start(vbsFile, argument);

    Gruß
    Marcel
    • Als Antwort vorgeschlagen Elmar BoyeEditor Montag, 3. Juni 2013 10:05
    • Als Antwort markiert Zanz19 Montag, 3. Juni 2013 13:09
    Montag, 3. Juni 2013 09:21
    Moderator

Alle Antworten

  • Mir ist nicht klar was Du eigentlich machen willst.

    Geht es darum die Variable Database, welche in einem VB Programm genutzt wird zu speichern und später in einem C# Programm wieder einzulesen?

    Oder, geht es darum dein VB Programm mit einem C# Programm zu starten und vom C# Programm aus die Variable auszulesen?

    Oder hast Du noch was ganz anderes vor?


    - Florian

    Montag, 3. Juni 2013 08:38

  • Hallo,

    da der Code anscheinend aus einem SO-Post mit Bezug auf VBScript stammt, nehme ich an, dass Du eine VBScript-Datei über C#-Code ausführen möchtest und diesem Skript ein String-Argument übergeben möchtest.

    Nehmen wir mal an, dass deine VBS-Datei so aussieht:

    message = WScript.Arguments.Item(0)
    MsgBox message

    Dann kann ein Aufruf aus C# mit Argument-Übergabe so aussehen:

    var vbsFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "ShowMessage.vbs");
    var argument = String.Format("\"{0}\"", "Hallo Welt!");
    Process.Start(vbsFile, argument);

    Gruß
    Marcel
    • Als Antwort vorgeschlagen Elmar BoyeEditor Montag, 3. Juni 2013 10:05
    • Als Antwort markiert Zanz19 Montag, 3. Juni 2013 13:09
    Montag, 3. Juni 2013 09:21
    Moderator
  • Hallo, mal geraten was du vor hast. Wenn du 2 Programme hast und Programm1 (C#) das Programm2 (VB) starten will. Dann musst du die Argumente für das Process-Objekt festlegen:
    scriptProc.StartInfo.Arguments = "Das ist nun dein Argument";
    Aber das ist nun wirklich nur geraten. In deinem VB-Programm musst du es dann auslesen. Wobei ich nun nicht weis ob du VB/VB.NET/... benutzt.

    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    Montag, 3. Juni 2013 09:23
    Moderator
  • Hallo,

    bitte gebe Dir etwas mehr Mühe mit Deinen Fragen und Multi-Postings machen man es auch nicht besser (auch wenn es hier beim Raten hilft):

    Siehe Marcels Antwort und Working with Command-Line Arguments

    Gruß Elmar

    Montag, 3. Juni 2013 10:05
    Beantworter