Parameterübergabe an Programm

dNIL

Mitglied
Hallo, ich nochmal,

ich habe ein Programm, was aus TIFs JPGs macht. Nun hab ich die Aufgabe, dass man dem Programm den Pfad eines Bildes übergibt und dass dann nur das umgewandelt wird.

Doch wie übergebe ich Parameter beim Start meines Programms bzw. wie komme ich an diese? Hab schon überall gesucht, doch nichts gefunden. :(
 
Erstell Dir mal ein neues Konsolenprojekt und sieh Dir dort die main()-Methode an. So müsstest Du die main()-Methode in Deiner Windows-Forms-Startdatei auch abändern.
Code:
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main(string[] args)
{
   //
   // TODO: Fügen Sie hier Code hinzu, um die Anwendung zu starten
   //
}
Über das args-Stringarray kommst Du an Deine Startparameter ran. Sollte eigentlich klappen. :)
 
Hm, wenn ich den Parameter irgendwie als String verwenden will (z.B. anderer Variablen zuweisen), kommt immer die Meldung:
"Ein Objektverweis ist für das nicht statische Feld, Methode oder Eigenschaft 'ConsoleApplication1.Class1.alsJPEGspeichern(string, string)' erforderlich."

Was tun, um den Parameter als String behandeln zu können?



MfG
dNIL
 
Zuletzt bearbeitet:
Ihn einfach mittels "Convert" konvertieren?
Oder meinst was anderes? Ich glaub du greifst evtl. falsch auf die Variable zu!
 
Hmm...
Wenn ich das richtig interpretiere, hast du eine Klasse mit einer statischen Main-Methode. aus dieser willst du nun eine andere (nicht-statische) Methode (einer anderen Klasse) aufrufen.
Die Parameter sind aber statisch. Da ein String ein Objekt ist, wird dies standartmäßig by Reference übergeben. Das klappt so nicht, sondern du musst ein neues Objekt anlegen, die Werte dort hineinschreiben und jenes dann übergeben. - Oder du machst alsJPEGspeichern() statisch. :)

Oder du hast einfach nur nicht beachtet, dass die Variable "args" keinen String, sondern ein Array von Strings beinhaltet. :)
 
Wenn ich das richtig interpretiere, hast du eine Klasse mit einer statischen Main-Methode. aus dieser willst du nun eine andere (nicht-statische) Methode (einer anderen Klasse) aufrufen.
Die Parameter sind aber statisch. Da ein String ein Objekt ist, wird dies standartmäßig by Reference übergeben. Das klappt so nicht, sondern du musst ein neues Objekt anlegen, die Werte dort hineinschreiben und jenes dann übergeben.
Ja, so ungefähr wird's sein... Ich hab's jetzt so gemacht:
Code:
string [] uebergebeneParameter;
...
static void Main(string[] args) 
		{
			Application.Run(new Form1(args));
		}
...
public Form1(string [] args)
		{
			uebergebeneParameter = args;
			InitializeComponent();
		}
So geht's jetzt.

Danke für die Hilfe :p
Gruß
dNIL
 
Zuletzt bearbeitet:
Zurück