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
Überprüfen, ob externes Programm installiert ist
Mauarn
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Überprüfen, ob externes Programm installiert ist

beantworten | zitieren | melden

Hallo,
Ich bin gerade dabei ein Programm zu schreiben, welches ein externes Programm benötigt. Zum Aufrufen verwende ich:


System.Diagnostics.Process.Start("externesProgramm.exe");
Jetzt meine Frage: Gibt es eine Möglichkeit zu überprüfen, ob diese Anwendung auf dem PC installiert ist? Der Installationspfad des externen Programmes ist für mich dabei unbekannt.
Danke im Voraus!
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.196

beantworten | zitieren | melden

Wenn Du keine Eindeutigkeit der externen Anwendung hast (Registry, Pfad, etc....), dann gibt es keine eindeutige Überprüfungsmöglichkeit.
private Nachricht | Beiträge des Benutzers
Paratrooper
myCSharp.de - Member

Avatar #avatar-1887.gif


Dabei seit:
Beiträge: 22
Herkunft: LA

beantworten | zitieren | melden

try-catch verwenden.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.196

beantworten | zitieren | melden

Er benötigt den Pfad zur Exe, um diese zu starten. Try-Catch hilft beim Suchen nicht; nur beim Start-Versuch einer nicht-existierenden Exe.
Zitat von Mauarn
Der Installationspfad des externen Programmes ist für mich dabei unbekannt.
Oder was willst mit try-catch bezogen auf seine Frage anfangen?
private Nachricht | Beiträge des Benutzers
david.m
myCSharp.de - Member



Dabei seit:
Beiträge: 140

beantworten | zitieren | melden

Was man machen könnte wäre die Ausgabe von where zu parsen.

where externesProgramm.exe
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.494

beantworten | zitieren | melden

Die PATH-Variable wird beim Starten eines Prozesses schon beachtet (welche where auch nur durchsucht).

Man könnte dann das gesamte Dateisystem durchsuchen lassen ([Snippet] Verzeichnisse und Dateien rekursiv durchlaufen) - evtl. noch zusätzlich mit Einbeziehung des (direkten) Ordnernamens.

Um welche konkrete Anwendung geht es denn?
private Nachricht | Beiträge des Benutzers
Mauarn
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Zitat von Th69
Um welche konkrete Anwendung geht es denn?

Mein Hauptprogramm ist eine Bedienoberfläche zur Steuerung eines Arduinos. Zusätzlich kann dann das externe Programm verwendet werden, welches eigene Programmierung ermöglicht. Um die Anwendung so angenehm wie möglich zu gestalten, wollte ich, dass man das externe Programm von Hauptprogramm aus starten kann. Da dies aber extra heruntergeladen wird, ist mir der Dateipfad unbekannt.

Ich hoffe, damit konnte ich helfen😅
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.494

beantworten | zitieren | melden

Dann lass doch den Anwender den Pfad zu der Anwendung (z.B. über den FileOpenDialog - mit einem Filter auf den Dateinamen) eingeben.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.847
Herkunft: Düsseldorf

beantworten | zitieren | melden

Das (was Th69 vorschlägt) machen übrigens viele Programme - ist die einzige mehr oder weniger zuverlässige Möglichkeit.

Z.B. gibt's Visual Studio Extensions, die externe Programme in Visual Studio integrieren. Die Extension weiß natürlich nicht, wo das Programm liegt (besonders wenn das nicht installiert werden muss), also gibt es eine Einstellung, wo man den Pfad zur exe oder zum Programm-Ordner eingeben muss.
private Nachricht | Beiträge des Benutzers
Mauarn
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Dann mache ich es über den OpenFileDialog. Danke für die vielen Antworten.😀
private Nachricht | Beiträge des Benutzers