[C#] Datei mit Standartprogramm öffnen, welche Parameter?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von tee, 30. Dezember 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 30. Dezember 2009
    Datei mit Standartprogramm öffnen, welche Parameter?

    Hallo,

    ich habe einen kleinen Editor geschrieben (so ähnlich wie der Standarteditor in Windows).

    Nun möchte ich den Editor als Standartprogramm für .txt-Dateien einstellen, was auch funktioniert. Nur ist es so, dass immer, wenn ich eine .txt-Datei öffne zwar mein Editor aufgeht, er aber die Datei nicht lädt.
    Gibt es einen speziellen Startparameter den ich verwenden muss? Ich habe es mit folgendem probiert:
    Code:
    static public void Main(string[] args)
     {
     if (args[0] != "")
     {
     lese Datei ein und schreibe es in RichTextBox
     }
     }
    Wenn ich jetzt aber versuche, den übergebenen String als Dateipfad zu verwenden und die Datei in eine RichTextBox zu laden, lässt er mich nicht auf die RichTextBox zugreifen oder sagt, die Main-Methode wäre schon in einer von den automatisch generierten Dateien vorhanden.

    Gibt es irgendeine spezielle Funktion für das was ich machen will, oder habe ich den richtigen Weg, mache aber einen Fehler?

    MfG
    tee
     
  2. 30. Dezember 2009
    AW: Datei mit Standartprogramm öffnen, welche Parameter?

    Das Nullte Element beinhaltet normalerweiße (C++) den Dateipfad deiner EXE, also müsste das erste Element die zu öffnende Datei festhalten.

    Ansonsten lass dir doch die Argumentenliste ausgeben, wahrscheinlich werden die Parameter
    anderst übergeben (wenn überhaupt) als du es annimmst: Beispiele zum Ausgeben

    PS: Durch ziehen einer Datei auf dein Programm wird auch die ziehende Datei als Parameter an deine Anwendung übergeben.

    Mfg Rushh0ur
     
  3. 30. Dezember 2009
    AW: Datei mit Standartprogramm öffnen, welche Parameter?

    Also, ich weiß jetzt, dass das 0. Argument die zu öffnende Datei ist.

    Jetzt habe ich aber ein enderes Problem:
    Ich kann keine Main-Methode definieren. Der Debugger sagt, dass es schon eine in App.g.cs gibt, in der Datei steht aber dass sie bei jedem Kompilieren automatisch neu erstellt wird und deshalb nicht geändert werden darf.
    Ich habe dann mal gegoogelt und gelesen, dass man in WPF-Anwendungen immer das [STAThread]-Attribut vor die Main-Methode hängen muss. Bringt aber auch nichts, ich erhalte den gleichen Fehler.

    Dann habe ich gelesen, dass man die ganze App.xaml löschen und eine neue App.cs anlegen soll.
    Siehe hier.

    Da bekomme ich aber Fehler über die falsche Verwendung der Klasse.

    EDIT: Habs herausgefunden.

    Entweder direkt in der App.xaml bzw. App.xaml.cs:
    Code:
    <Application x:Class="xxx"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     Startup="Application_Startup">
    .
    .
    .
    
     [STAThread]
     private void Application_Startup(object sender, StartupEventArgs e)
     {
    
     // e.Args = string[] mit argumenten
    
     Window1 wnd = new Window1();
     wnd.ShowDialog();
    
     }
    
    Oder allgemein Startparameter auslesen:
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.