Feedback

C# - ClickOnce Datei Verknüpfung

Veröffentlicht von am 21.08.2009
(1 Bewertungen)
Bei ClickOnce gibt es keine Möglichkeit Dateiendungen zu Verknüpfen. Mit Verwendung der Registry und einigen anderen Tricks ist es doch möglich.
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

//-------------------
//DatenPfad bestimmen
//-------------------
                String DatenPfad;

                if (ApplicationDeployment.IsNetworkDeployed)
                    DatenPfad = ApplicationDeployment.CurrentDeployment.DataDirectory;
                else
                    DatenPfad = Application.StartupPath;

                DatenPfad += "\\"; 


//----------------------
//DateiEndung Verknüpfen
//----------------------

//Nur Verknüpfen, wenn der Benutzer Administartor ist!
            WindowsIdentity myWindowsIdentity = WindowsIdentity.GetCurrent();
            WindowsPrincipal myWindowsPrincipal = new WindowsPrincipal(myWindowsIdentity);
            if (myWindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
            {
                #region Batch Datei schreiben
                StreamWriter Writer = File.CreateText(DatenPfad + "Run.bat");
                Writer.WriteLine("@echo off");
                Writer.WriteLine("if %1!==! goto ende");
                Writer.WriteLine(DatenPfad.Substring(0, 2));
                Writer.WriteLine("cd \"" + DatenPfad.Remove(0, 2) + "\"");
                Writer.WriteLine("echo %1 >> Run.dat");


                if (ApplicationDeployment.IsNetworkDeployed)
                {
                    Writer.WriteLine("c:");
                    Writer.WriteLine("cd " + Environment.GetEnvironmentVariable("USERPROFILE").Remove(0, 2) + @"\Startmen?\Programme\*Hersteller*\");
                    Writer.WriteLine("start *Anwendung*.appref-ms");
                }
                else
                    Writer.WriteLine("\"" + Application.ExecutablePath + "\"");

                Writer.WriteLine(":ende");
                Writer.Close();
                #endregion

                RegistryKey FileKey = Registry.ClassesRoot.CreateSubKey(".*Endung*");
                FileKey.SetValue("", "*Anwendung*.*Endung*");

                RegistryKey AppKey = Registry.ClassesRoot.CreateSubKey("*Anwendung*.*Endung*");
                AppKey.SetValue("", "*Datei Typ*");
                AppKey.CreateSubKey(@"Shell\Open\Command").SetValue("", DatenPfad + "Run.bat \"%L\"");
                AppKey.CreateSubKey(@"DefaultIcon").SetValue("", "" + Application.ExecutablePath);

                MessageBox.Show("Die Dateiendung *Endung* wurde erfolgreich mit *Anwendung* verknüpft!", "Hinweis");
            }
            else
                //Hinweis anzeigen
                MessageBox.Show("Die Dateiendung *Endung* kann nicht mit *Anwendung* verknüpft werden, weil Sie kein Administrator sind!", "Fehler");


//------------------------------
//Anwenung über Datei gestartet?
//------------------------------
            if (File.Exists(DatenPfad + "Run.dat"))
            {
                //Datei öffnen & lesen
                StreamReader Reader = File.OpenText(DatenPfad + "Run.dat");
                String Datei = Reader.ReadLine();

                //Datei schließen & löschen
                Reader.Close();
                File.Delete(DatenPfad + "Run.dat");

                //Anführungszeichen entfernen!
                if (Datei.Length > 2)
                    Datei = Datei.Replace("\"", "");

                //Datei vorhanden?
                if (File.Exists(Datei))
{
//Mach was
}
            }
Abgelegt unter ClickOnce, Verknüpfung, Dateiendung.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!