Parameterübergabe

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von aspire.

    Parameterübergabe

    Moin moin,

    ich hatte eine Idee für eins meiner Programme gehabt, und zwar würde ich gern eine Parameter übergabe für das Programm schreiben z.B.

    Quellcode

    1. name.exe -maximized


    In wie fern kann man dies verwirklichen, bzw. welche Codes brauche ich dafür?
    Ne, das meine ich nicht...

    Es gibt die möglichkeit ein Programm mit gewissen Parametern zu starten.
    Beispielsweise kann man an 7zip Parameter weitergeben wie Dateipfad der exhrahierenden File und und und, sowas möchte ich auch in eins meiner Programme einbinden, nur nicht zum extrahieren sondern um Textboxen mit Parametern wie z.B. Absendernamen oder sonstigem zu füllen.
    Hmm jut, noch eine Frage hätte ich da.

    Bei mir will ich die Parameter die folgen alle auslesen und in die entsprechenden Textboxen einfügen sprich z.B. wenn der Startparameter heißt:

    Quellcode

    1. Datei.exe -Peter - Müller


    Das dann Textbox1 den Text "Peter" erhält und Textbox2 den Text "Müller" in wie fern kann ich das umsetzten?
    Hey,
    die GetCommandLineArgs()-Funktion gibt ein Array zurück, Index 0 ist der Programmpfad.
    Hier wäre also Index 1 -Peter und Index 2 -Müller.

    MfG,
    -haiyyu
    Hab dafür ne schicke Funktion geschrieben i-wann mal :)

    VB.NET-Quellcode

    1.   Public Function GetParameter() As String
    2.   Dim returnValue() As String
    3.   Dim parameter As String = String.Empty
    4.   returnValue = Environment.GetCommandLineArgs
    5.   If returnValue.LongLength - 1 <= 0 Then Return Nothing
    6.   Return returnValue(1)
    7.   End Function
    Nope.. Das tuts nicht. Ich hatte es mir schon gedacht, aber für dich trotzdem nochmal getestet. Bitteschön:



    aus der cmd ruf ich wa.exe mit 3 parameter auf und ins form_load ereignis hab ich folgendes gemacht:

    Messagebox.show(GetParameter)

    Somit ist deine Funktion nur für den 1. Parameter gut.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Srryyy
    Hatte 2 Funktionen davon, das war die falsche :/
    Hab net draufgeschaut, die gibt immer das 1. zurück, hier die richtige:

    VB.NET-Quellcode

    1.   Public Function GetParameter() As String
    2.   GetParameter = String.Empty
    3.   Dim returnValue() As String
    4.   Dim parameter As String = String.Empty
    5.   returnValue = Environment.GetCommandLineArgs
    6.   If returnValue.LongLength - 1 <= 0 Then Return Nothing
    7.   For a As Integer = 1 To returnValue.Count - 1
    8.   GetParameter += returnValue(a) & " "
    9.   Next
    10.   End Function
    Wenn du

    VB.NET-Quellcode

    1. For a As Integer = 1 To returnValue.Count - 1

    mit

    VB.NET-Quellcode

    1. For a As Integer = 1 To returnValue.Length - 1

    noch austauschst, dann wirds funktionieren.

    Was mir aber hier nicht gefällt: Es wird ein String zurückgegeben. Wenn man was damit anfangen will, muss man es doch wieder Splitten. Splitten = Array. Warum nicht gleich ein Array zurückgeben?
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Weis ich nicht use Visual Basic 2008 Express Edition udn bei mir gibt es .count bei jedem Array,
    Achja so besser? :

    VB.NET-Quellcode

    1.   Public Function GetParameter(ByVal ParameterIndex as Integer) As String
    2.   Dim returnValue() As String
    3.   Dim parameter As String = String.Empty
    4.   returnValue = Environment.GetCommandLineArgs
    5.   If returnValue.LongLength - 1 <= 0 Then Return Nothing
    6.   Return returnValue(ParameterIndex)
    7.   End Function

    So kann man nun angebeben welches Parameter man will :)
    hehe ja so ists auch ne Möglichkeit ;) Dann kannst du ja auch noch abfragen, ob paraindex nicht 0 ist, denn du willst ja nur die params.

    VB.NET-Quellcode

    1. If returnValue.LongLength - 1 <= 0 AND ParameterIndex = 0 Then Return Nothing
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer