Avatar billede lasserasch Juniormester
08. februar 2007 - 08:17 Der er 4 kommentarer og
1 løsning

Starte program med parametre.

Hejsa.

Kunne godt tænke mig at starte mit C# program med parametre, som så skulle bruges i programmet.


F.eks.

c:\testprogram.exe /user:lasse

Hvor den så gemte værdien lasse i en variabel, som blev brugt i koden.


Hvordan gør man det?


/Lasse
Avatar billede mh6000 Nybegynder
08. februar 2007 - 08:47 #1
Avatar billede lasserasch Juniormester
08. februar 2007 - 10:53 #2
Nej, det er jo ikke et andet program jeg vil starte med en parameter.

Det C# program jeg har udviklet, vil jeg have til at kunne modtage en parameter under dens opstart. Hvis min copiled fil hedder "testprogram.exe" og der i form1.cs ligger en static String ved navn String1.

så vil jeg gerne kunne starte mit færdige program sådan her :

testprogram1.exe /user:lasse

I min form1 vil jeg så gerne kunne aflæse den /user parameter, og sætte String1 = lasse.

/Lasserasch
Avatar billede mh6000 Nybegynder
08. februar 2007 - 11:15 #3
ok,,, Sorry :-)

2 metoder.
1. Environment.GetCommandLineArgs()
2. args[] arrayet du får fra din public static void main(string args[])

jeg foretretrækker 1 da den kan bruges alle steder fra i dit program :-)
Avatar billede lasserasch Juniormester
08. februar 2007 - 14:25 #4
Ok. Fik det til at virke med dette stykke kode i "program.cs".


  static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {

            char[] delimiterChars = { '/' };
            string exec_command = Environment.CommandLine;
            string[] argumenter = exec_command.Split(delimiterChars);

            Int32 Arg_is_user = 0;
            foreach (string s in argumenter)
            {
                if (Arg_is_user != 1)
                {

                    if (s.StartsWith("user:"))
                    {
                        Arg_is_user = 1;
                    }
                }
                else
                {
                    Form1.Profil = s.Trim();
                }



            }
            if (Form1.Profil.Trim() == "")
            {
                MessageBox.Show("Ingen brugerparameter angivet. Start programmet med '/user:brugernavn'.", "Fejl under programstart", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }

        }
    }



Ved ikke om det kan gøres med mindre kode.

Anyway, tak for hjælpen! smid et svar for points!

/Lasse
Avatar billede mh6000 Nybegynder
08. februar 2007 - 14:39 #5
svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester