[C#] Starten einer Anwendung ohne Laufwerksbuchstaben

nap

Lieutenant
Registriert
Nov. 2001
Beiträge
568
Hi Leute.

Habe folgendes vor:

habe eine tragbare Festplatte "My Book". Dort habe ich viele Programme drauf, u.a. VLC Player, Emule usw. alles Programme die man nicht installieren muss, ähnlich der PortableApps.

Wenn ich die Platte an unterschiedlichen Rechnern anschliesse, bekommt diese je nach konfiguration dieser einen anderen Laufwerksbuchstaben.

Wenn ich die Platte nun an einen Rechner anschliesse, möchte ich das sich mit hilfe einer Autostart.inf die exe startet ein Fenster öffnet, auf diesem zB 10 buttons sind oder eine dropdown leiste, in der ich verschiedene Programme auswählen und straten kann.

Nehmen wir jetz erstal nen button. Wenn ich auf den button "VLC Player" klicke möchte ich das der VLC Player von der tragbaren Platte startet.

Das was ich bis jetzt in C# geschrieben habe, geht nur wenn ich einen Directen Pfad angebe, da aber die Platte immer einen anderen Laufwerksbuchstaben hat bekomme ich an einen anderem Rechner einen Fehler "Datei konnte nicht gefunden werden".

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace My_Book
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(@"..\PortableApp\eMule SNAKE\emule.exe");
        }
        
        private void button2_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(@"..\PortableApp\VLC media player\vlc.exe");
        }
    }
}


Wie falsch ist es was ich da habe, kann mans besser lösen?

mfg
 
Meine Idee wäre folgende: Du platzierst das kleine Programm im Wurzelverzeichnis Deiner externen Festplatte. Somit müsstest Du mit Application.StartupPath immer das Wurzelverzeichnis abrufen können.

Das Startverzeichnis der Anwendung (StartupPath) und den restlichen Pfad zum gewünschten Programm kombinierst Du am besten mit der Combine-Methode der Path-Klasse aus dem Namespace System.IO.

Code:
System.Diagnostics.Process.Start(System.IO.Path.Combine(Application.StartupPath, @"PortableApp\eMule SNAKE\emule.exe"));
 
Suuuper! Ich danke Dir!
 
Zurück
Oben