Hallo Leute!
Ich möchte eine Datei mit meiner Anwendung starten, also mit einem Doppelklick.
So sieht der Code aus:
[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
{
string arg1 = args[0];
MessageBox.Show(arg1);
}
Application.Run(new WorkWriter());
}
Bekomme aber von args nicht den kompletten Pfad, sondern nur ein Teil (C:\Dokumente).
Wie bekomme ich das hin, dass er mir den ganzen Pfad der Datei anzeigt?
mfg vs_meier
Du musst den Parameter in "" setzen. Also "c:\dokumente und einstellungen..." Dann klappt das.
Hi chavez!
Irgendwie verstehe ich dich nicht, wo soll ich den die "" einsetzen ?
Ich will doch das der Dateipfad an meiner Anwendung übergeben wird mit einem Doppelklick.
mfg vs_meier
Ok. Das verstehe ich jetzt nicht. Aber du übergibst ja deinem programm ja schon den pfad. Dieser wird aber laut deinen Angaben beim Leerzeichen gesplittet. Um genau das zu verhindern musst du den Pfad in Anführungszeichen übergeben.
also anstatt
prog.exe c:/dokumente und einstellungen/all users/dokumente
machst du es so
prog.exe "c:/dokumente und einstellungen/all users/dokumente"
Somit enthält args[0] den kompletten pfad und nich nur c:/dokumente
Habe es jetzt so gemacht, aber ist das gleiche Ergebniss.
[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
{
MessageBox.Show("\"" + args[0] + "\"");
}
Application.Run(new WorkWriter());
}
mfg vs_meier
So ich hab dir mal ein kleines Testprog angehängt.
Du rufst es so auf:
ParamTest.exe "c:/dokumente und einstellungen/all users/dokumente"
wenn du es so aufrufst
ParamTest.exe c:/dokumente und einstellungen/all users/dokumente
dann zeigt er die nur c:/dokumente an
Ich hoffe du verstehst jetzt wie ich das meine.
Hallo vs_meier,
die Anführungsstriche musst du - wie chavez gesagt hat - beim Aufruf setzen. Im Programm ist es zu spät.
herbivore
Stimmt, stand da wohl ziemlich auf der Leitung.
Danke für die Hilfe.
mfg vs_meier