Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Anwendung über C#-exe starten funktioniert, über Verknüpfing nicht
LittleTester
myCSharp.de - Member



Dabei seit:
Beiträge: 151

Themenstarter:

Anwendung über C#-exe starten funktioniert, über Verknüpfing nicht

beantworten | zitieren | melden

Ich habe mir ein kleines Tool geschrieben mit dem ich verschiedene cmd-Dateien als Administrator aufrufen kann.
Solange ich die exe aus dem gleichen Verzeichnis starte wo auch die cmd-Dateien liegen funktioniert es. Verwende ich aber die Verknüpfung zur exe werden die cmd-Dateien nicht mehr gefunden. Ich muss die cmd-Dateien dann in das gleiche Verzeichnis wie die Verknüpfung legen. Dann klappt es wieder.

Ich verstehe das nicht. Eine Verknüpfung ist doch nur ein Verweis auf die exe die gestartet wird. Was läuft falsch?


string fileName;
private void BtnMicrosoftSurface_Click(object sender, EventArgs e)
{
    try
    {
        fileName = Path.GetFileName("InstallSurface.cmd");
        Process proc = new Process();
        proc.StartInfo.FileName = fileName;
        proc.StartInfo.UseShellExecute = true;
        proc.StartInfo.Verb = "runas";
        proc.Start();
        Close();
    }
    catch (Exception)
    {
        MessageBox.Show("Datei \"InstallSurface.cmd\" nicht gefunden.", "Fehler",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.312

beantworten | zitieren | melden

ProcessStartInfo.WorkingDirectory Property (System.Diagnostics)
private Nachricht | Beiträge des Benutzers
LittleTester
myCSharp.de - Member



Dabei seit:
Beiträge: 151

Themenstarter:

beantworten | zitieren | melden

Danke Abt. Du hast mir zwar jetzt den Weg Richtung Lösung gezeigt, aber warum das so ist habe ich trotzdem nicht verstanden.
Ich nutze doch nur eine Abkürzung um die exe aus zu führen und trotzdem ist ein Workingdir notwendig? Was passiert da im Hintergrund?
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
Jamikus
myCSharp.de - Member



Dabei seit:
Beiträge: 250
Herkunft: NRW

beantworten | zitieren | melden

Tippe, dass der Name der Verknüpfung nicht "InstallSurface.cmd" ist sondern eher "InstallSurface.lnk" o.ä.
private Nachricht | Beiträge des Benutzers
Caveman
myCSharp.de - Member

Avatar #avatar-3854.jpg


Dabei seit:
Beiträge: 159

beantworten | zitieren | melden

Zitat von LittleTester
Ich nutze doch nur eine Abkürzung um die exe aus zu führen und trotzdem ist ein Workingdir notwendig? Was passiert da im Hintergrund?

Die Antwort hast Du Dir doch im Eingangspost schon selber gegeben! Deine Exe findet doch auch die Dateien nicht selber, wenn sie in einem anderen Ordner als die CMD-Dateien liegt.
Vereinfacht gesagt, ist der Arbeitsordner immer der Ordner, in dem das Programm gestartet wird, wenn nichts anderes angegeben wird. In Deinem Fall mit der Verknüpfung wird das Programm halt dann wahrscheinlich vom Desktop getsartet und der Arbeitsordner ist eben der Desktop.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.312

beantworten | zitieren | melden

Das ist eine Funktionsweise von Betriebssystemen mit ihrem Dateisystem
Working directory
private Nachricht | Beiträge des Benutzers
LittleTester
myCSharp.de - Member



Dabei seit:
Beiträge: 151

Themenstarter:

beantworten | zitieren | melden

Wollte mich noch für die Erklärungen bedanken. Hatte sie unterwegs gelesen und dann zu Hause vergessen zu reagieren.
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers