Commandline arguments gebruiken

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • thek
  • Registratie: Juli 2008
  • Niet online
Ik wil graag een aantal commandline arguments meegeven aan een executable:

Voorbeeld: test.exe testarg1 testarg2

De waarde arg1 en arg1 worden in de applicatie gebruikt. Hierbij heb ik de volgende code gebruikt om ze op te halen:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void Form1_Load(object sender, EventArgs e)
        {
            string[] args = Environment.GetCommandLineArgs();            
            try
            {
                foreach (string arg in args)
                {
                    TextBox1.AppendText(Environment.NewLine + args[1]);
                }
            }
            catch
            {
            }
         }


In de onderstaande gedeelte wil ik graag de waarde van args[1] gebruiken bij het aanklikken van Button1

C#:
1
2
3
private void Button1_Click(object sender, EventArgs e) {
    TextBox1.AppendText(Environment.NewLine + args[1]);
}


Hoe krijg ik de waarde (testarg1) van Form1_Load naar de Button1_Click gedeelte?

Beste antwoord (via thek op 08-05-2016 17:58)


  • Daos
  • Registratie: Oktober 2004
  • Niet online
Je kan het opslaan in een field: MSDN: Fields (C# Programming Guide)

Of gewoon in je click-handler de argumenten opnieuw ophalen zoals je doet bij de load.

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Je kan het opslaan in een field: MSDN: Fields (C# Programming Guide)

Of gewoon in je click-handler de argumenten opnieuw ophalen zoals je doet bij de load.

Acties:
  • 0 Henk 'm!

  • thek
  • Registratie: Juli 2008
  • Niet online
Daos schreef op zondag 08 mei 2016 @ 16:22:
Je kan het opslaan in een field: MSDN: Fields (C# Programming Guide)

Of gewoon in je click-handler de argumenten opnieuw ophalen zoals je doet bij de load.
Bedankt het werkt! Heb alles van de load gekopieerd naar de click handler zoals je hebt aangegeven.

Acties:
  • +1 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:02

Haan

dotnetter

thek schreef op zondag 08 mei 2016 @ 17:57:
[...]


Bedankt het werkt! Heb alles van de load gekopieerd naar de click handler zoals je hebt aangegeven.
Het werkt misschien wel, maar is niet direct de mooiste oplossing. Ik neem aan dat dit een WinForms applicatie is? Ik zou ergens in een helper / utility class iets van properties definiëren en in de constructor van je Form de arguments ophalen en in de desbetreffende properties zetten*.

Dan heb je verwerken van de commandline input op een logische plek staan, en zijn de waardes makkelijk benaderbaar door je hele applicatie.

* voor de puristen: niet letterlijk in de constructor, maar in een helper method ParseCommandlineArgs() die vanuit de constructor aangeroepen wordt ;)

Kater? Eerst water, de rest komt later