Gå til innhold

[Løst]Bruk av operander(?) når man starter et program


Anbefalte innlegg

Driver og lager et lite informasjonssystem for en skole her, og har lyst til å legge inn mulighet for å kunne spesifisere hvilket studie brukeren av applikasjonen går på.

 

Brukerene logger på en AD-kontroller

Det er lagt inn logonscript i AD-kontroller som kopierer over applikasjonen til lokal maskin, og som starter programmet (start c:\app.exe)

 

Det jeg ønsker, er muligheten til å legge til operander(?) når man skal starte programmet.

Eksempel

start "C:\app.exe -3d"

start "C:\app.exe -film"

osv.

 

Å utføre denne kommandoen er jo null problem, men hvordan får jeg applikasjonen min til å lese operanden?

 

Benytter meg av Visual Basic.net

 

Note: Tror det heter operand, er bare ikke helt sikker :p

Lenke til kommentar
Videoannonse
Annonse

Treff på google.com.

 

Uten å noen sinne ha rørt VB.net-kode, regner jeg med at dette gjøres som i de fleste andre høynivåspråk.

 

Visual Basic.net:

Shared Sub Main(ByVal args As String())
  For Each arg As String In args
  Console.WriteLine(arg)
  Next arg
End Sub

 

C#.net:

using System;

class HelloWorld
{
  static void Main(string[] args)
  {
  foreach(string arg in args)
	 Console.WriteLine(arg);
  }
}

 

C#.net:

foreach(string arg in System.Windows.Forms.Environment.GetCommandLineArguments())
  Console.WriteLine(arg);

 

Dette kan altså gjøres på (minst) to måter.

 

Endring:

GeirGrusom slo meg med flere minutter. :fun:

Endret av phfjeld
Lenke til kommentar

Bah, jeg får det fanken ikke til >_>

 

Jeg har fått det til i et konsollprogram ved å bruke snuttene phfjeld henviste til, men jeg klarer ikke å porte det til en vindu-applikasjon :(

 

Finner bare treff til hvordan å gjøre det i konsollapplikasjoner når jeg søker også :<

 

Nevermind, fikk det til :)

 

variabel = My.Application.CommandLineArgs(0)

Endret av lefsaker
Lenke til kommentar
Bah, jeg får det fanken ikke til >_>

 

Jeg har fått det til i et konsollprogram ved å bruke snuttene phfjeld henviste til, men jeg klarer ikke å porte det til en vindu-applikasjon :(

 

Finner bare treff til hvordan å gjøre det i konsollapplikasjoner når jeg søker også :<

 

Nevermind, fikk det til :)

 

variabel = My.Application.CommandLineArgs(0)

Shared Sub Main(ByVal args As String())
  For Each arg As String In args
  Console.WriteLine(arg)
  Next arg
End Sub

 

Problemet er nok linjen Console.WriteLine(arg), da dette er den eneste funksjonen som hører til .net-plattformens konsollbibliotek. Du kan egentlig gjøre hva du vil med matrisen 'args', akkurat som du kan med variabelen 'variabel' i ditt eget eksempel. Foreach-løkken jobber seg ganske enkelt gjennom 'args' og lagrer hvert argument i den lokale strengen 'arg'. Det er heller ikke noe i veien for å gjøre som du gjør, bortsett fra at man gjør et ekstra funksjonskall.

 

Følgende kode burde kompilere og kjøre i en Win32-applikasjon.

Shared Sub Main(ByVal args As String())
  Dim argCount As Integer = 0
  For Each arg As String In args
  argCount += 1
  Next arg
End Sub

 

Endring:

Fjernet en dobbelsitering.

Endret av phfjeld
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...