Setup erstellen

Swebble

Mitglied
Also folgendes,

unter .NET ist es ja recht nett Setups zu erstellen. Zumindest wenn man Visual Studio benutzt ;) Man kann den Ordner anlegen und und und Dateitypen mit dem Projekt verbinden....
Aber wie kriegt man es hin, dass beim Doppelklick auf eine per Dateityp verbundene Datei das Programm diese auch öffnet und nicht nur "leer" startet?

Gruß Swebble
 
Hi!

Man kann die Main-Routine so abändern, dass ihr ein String-Parameter übergeben wird. Das ist dann der Pfad der Datei, auf die Doppelgeklickt wurde.

Code:
static void Main(string[] args)
{
	...
}

mfg.
FX
 
Das hab ich schon probiert, aber egall wie ich es anstelle, wenn ich dann auf die Anzahl der übergebenen Parameter abprüfe kommt immer 0 raus.
 
Du musst nicht über irgendwelche Assembly/Process/Environment Klassen nach den Argumenten suchen. Ein Stringparameter in der Sub Main reicht.
Wenn du dein Programm dann so aufrufst: "programm.exe" c:\datei.dat, hat der Stringparameter den Wert "c:\datei.dat".

Also bei mir funktioniert das.
Das Programm muss natürlich mit der Sub Main starten und nicht mit einem Formular. Oder geht das dort auch?
 
Das ist mein Problem, weil wenn ich in der Main der Hauptform die Parameter abfrage, krieg ich nie einen, obwohl ich welche übergeben hab.
 
Original geschrieben von Swebble
Das ist mein Problem, weil wenn ich in der Main der Hauptform die Parameter abfrage, krieg ich nie einen, obwohl ich welche übergeben hab.

sorry, aber das kann net sein. Zeig mal bitte was von dem jeweiligen code und v.a. den Aufruf der .exe mitsamt Parameter
 
Code:
/// <summary>
		/// Der Haupteinstiegspunkt für die Anwendung.
		/// </summary>
		[STAThread]
		public static void Main() 
		{
			Application.Run(new MainForm());
		}

Wenn ich jetzt einfach hingehe und es so mache:
Code:
/// <summary>
		/// Der Haupteinstiegspunkt für die Anwendung.
		/// </summary>
		[STAThread]
		public static void Main(string[] args) 
		{
			Application.Run(new MainForm());
		}

und dann args.length abprüfe krieg ich immer 0.
 
Hey Krypta,

ich nehm alles zurück.
Ich war nur zu doof um mit meiner Entwicklungsumgebung zu arbeiten.
Ich war die ganze Zeit im Release Modus und da funktioniert es nicht Kommandozeilenparameter zu übergeben.

Trotzdem danke.
 

Neue Beiträge

Zurück