wie programm ablauf per parameter verändern?

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Bluespide.

    wie programm ablauf per parameter verändern?

    hey,

    ich denke mal das die überschrift nicht sehr eindeutig ist.
    Jeder kennt den "Shutdown" befehl. Und je nachdem ob der Computer einfach nur herunter fahren soll oder neustarten setzt man parameter dahinter. "/s" für herunterfahren und "/r" für neustarten.

    Nun möchte ich diesen Parameter effekt auch gerne in der eigenen exe haben.
    Wenn z.B.

    VB.NET-Quellcode

    1. shell ("test.exe /a")
    eingeben wird soll die MSGBOX den text "test1" anzeigen.
    und wenn man

    VB.NET-Quellcode

    1. shell ("test.exe /b")
    eingibt soll in der MSGBOX "test2" stehen.

    Wie kann man dieses ermöglichen?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    es ist maximal kürzer, Shell wurde nur aufgrund der Umsteiger von VB 6 in die Microsoft.VisualBasic Namespace übernommen...
    mit der Process Klasse hast du mehr Möglichkeiten und es ist Manged, das heißt ebenso, dass Fehler mit Try abgefangen werden können, da sie vom .Net aufgerufen wurden...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    das funktioniert nicht :(

    VB.NET-Quellcode

    1. Sub Main(ByVal args As String())
    2. For Each arg As String In args
    3. If arg = "/1" Then 'eins
    4. ...
    5. End If
    6. If arg = "/2" Then 'zwei
    7. ...
    8. End If
    9. If arg = "/3" Then 'drei
    10. ...
    11. End If
    12. Next arg
    13. Console.WriteLine(args)
    14. Console.ReadKey()
    d.h.? das wäre für eine Konsolenapplikation...
    im ersten Link und ersten Post ist bereits die Lösung für Windows-Forms-Applikationen: "System.Environment.GetCommandLineArgs()"

    Edit: ich mag die My Namespace nicht :P
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Du setzt dich echt nicht viel mit dem Thema auseinander, oder? Wenn du nicht den erstbesten Code aus meinem Link nimmst, sonder etwas weiter runter scrollst, dann gibt es ein sooo schönes Beispiel, wie man diese Funktion anwendet.

    VB.NET-Quellcode

    1. Dim arguments As String() = Environment.GetCommandLineArgs()
    2. console.writeline "Aufgerufener Dateiname: " & arguments(0)
    3. console.writeline "erster Parameter: " & arguments(1)

    der_Kurt schrieb:

    Du setzt dich echt nicht viel mit dem Thema auseinander, oder? Wenn du nicht den erstbesten Code aus meinem Link nimmst, sonder etwas weiter runter scrollst, dann gibt es ein sooo schönes Beispiel, wie man diese Funktion anwendet.

    VB.NET-Quellcode

    1. Dim arguments As String() = Environment.GetCommandLineArgs()
    2. console.writeline "Aufgerufener Dateiname: " & arguments(0)
    3. console.writeline "erster Parameter: " & arguments(1)


    Mit deinem "sooo schönen Beispiel" kann ich leider garnichts anfangen. Ich möchte nicht in der Console sehen was ich eingetippt habe sondern das ja nach dem wie der Parameter ist bestimmte festgelegte befehle ausgeführt werden.

    So dass wenn der Parameter "/a" ist das dann in der MSGBOX als Text sowas hier erscheinen soll ("test1").
    Und wenn der Parameter "/b" ist soll ("test2") als Text sein.
    *riesen fragezeichen* ich bin im moment verwirrt. Im SOurce code steht was von {0} und {1}.
    Woher soll man da wissen worfür was ist?



    das funktioniert aber auch nicht...

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim arguments As String() = Environment.GetCommandLineArgs()
    4. If arguments(1) = "/1" Then
    5. MsgBox("eins")
    6. End If
    7. If arguments(1) = "/2" Then
    8. MsgBox("zwei")
    9. End If
    10. Console.ReadKey()
    11. End Sub
    12. End Module

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mieper“ ()

    mieper schrieb:

    *riesen fragezeichen* ich bin im moment verwirrt. Im SOurce code steht was von {0} und {1}.
    Woher soll man da wissen worfür was ist?



    das funktioniert aber auch nicht...

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim arguments As String() = Environment.GetCommandLineArgs()
    4. If arguments(1) = "/1" Then
    5. MsgBox("eins")
    6. End If
    7. If arguments(1) = "/2" Then
    8. MsgBox("zwei")
    9. End If
    10. Console.ReadKey()
    11. End Sub
    12. End Module


    naja dann machst du was beim aufrufen falsch denn bei mir geht das beispiel richtig gut ^^
    mh komisch denn wenn ich diesen code nehme:

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim arguments As String() = Environment.GetCommandLineArgs()
    4. If arguments(1) = "/1" Then
    5. MsgBox("eins")
    6. End If
    7. If arguments(1) = "/2" Then
    8. MsgBox("zwei")
    9. End If
    10. Console.ReadKey()
    11. End Sub
    12. End Module
    und dann ne verknüpfung mache "ConsoleApplication1.exe" "/1" dann taucht die MsgBox mit "eins" auf, also funktioniert es

    ps:

    mieper schrieb:


    ich lege iene verknüpfung an "test.txt" "/1"
    das klappt leider nicht

    warum nimmste ne txt? Du musst schon deiner exe die Parameter übergeben :)