Laden...

Ausführen einer externen Anwendung im BIN Format

Erstellt von Perillio vor 4 Jahren Letzter Beitrag vor 4 Jahren 997 Views
P
Perillio Themenstarter:in
4 Beiträge seit 2019
vor 4 Jahren
Ausführen einer externen Anwendung im BIN Format

Hallo,

ich habe ein Problem beim Ausführen einer externen Anwendung.

Die Ausführung selbst ist ja kein Problem (siehe Code):

Process P = new Process();
            P.StartInfo.FileName = "start.bin";
            P.StartInfo.Arguments = "IP=127.0.0.1";
            P.Start();

Das Problem, dass nun auftaucht ist, dass die Datei eben nicht ausgeführt wird, sondern das System nach einer Anwendung zum öffnen dieser sucht.
Wenn ich aber in einer Batchdatei das obligatorische @start start.bin eingebe und diese starte, dann funktioniert es einwandfrei.

Fehlermeldung des Programmes nach erstellen:
"Der angegebenen Datei ist keine Anwendung zugeordnet".

Hat jemand eine Idee, wie ich hier weiter komme ?

Gruß

Stefan

4.931 Beiträge seit 2008
vor 4 Jahren

Was ist denn "start.bin" für eine Datei (Anwendung oder Batch-Datei oder ...)?

Oder paßt evtl. das "aktuelle Verzeichnis" (WorkingDirectory) nicht?

16.807 Beiträge seit 2008
vor 4 Jahren

Naja, musst Dir einfach mal anschauen, wie das unter Windows halt funktioniert.

Jede Datei-Endung, die Du selbst oder über eine Anwendung startest, muss dem Betriebssystem bekannt sein, sonst kann das Betriebssystem nicht wissen, wie es die Anwendung überhaupt starten soll.

"bin" scheint bei Dir unbekannt zu sein, was der Normalfall unter Windows ist. Es gibt hier unter Windows per Default keine zugewiesene Anwendung für die Handhabung dieser Dateiendung.
Wenn Du also Windows nicht bekannt machst, wie eine Dateiendung - hier bin - zu handlen ist, dann spuckt Windows genau diesen Fehler aus.

P
Perillio Themenstarter:in
4 Beiträge seit 2019
vor 4 Jahren

Was ist denn "start.bin" für eine Datei (Anwendung oder Batch-Datei oder ...)?

Oder paßt evtl. das "aktuelle Verzeichnis" (
>
) nicht?

start.bin ist eine ausführbare Datei.
Verzeichnis passt. Wenn ich das Verzeichnis im code ändere, kommt der Fehler "Datei nicht gefunden".

Jede Datei-Endung, die Du selbst oder über eine Anwendung startest, muss dem Betriebssystem bekannt sein, sonst kann das Betriebssystem nicht wissen, wie es die Anwendung überhaupt starten soll.

"bin" scheint bei Dir unbekannt zu sein, was der Normalfall unter Windows ist. Es gibt hier unter Windows per Default keine zugewiesene Anwendung für die Handhabung dieser Dateiendung.
Wenn Du also Windows nicht bekannt machst, wie eine Dateiendung - hier bin - zu handlen ist, dann spuckt Windows genau diesen Fehler aus.

Warum es aber dann mit einer Batchdati und dem Befehl "@start start.bin" klappt ist mir dann ein Rätsel. Ich muss allerdings dazu sagen, dass ich Windows normal nicht nutzen würde, würde das Programm nicht auf eine MSSQL-Datenbank bestehen. Unter Linux hab ich diese Probleme nicht 😄

Gruß

Stefan

16.807 Beiträge seit 2008
vor 4 Jahren

Ich muss allerdings dazu sagen, dass ich Windows normal nicht nutzen würde, würde das Programm nicht auf eine MSSQL-Datenbank bestehen. Unter Linux hab ich diese Probleme nicht 😄

Davon abgesehen, dass das Windows vs. Linux-Bashing totaler Kindergarten ist, bei dem Dich Leute potentiell eher nicht mehr ernst nehmen als bewundern und wir auch aus dem Alter schon längst draußen sind, läuft MSSQL mittlerweile problemlos unter Linux - sogar im Rahmen eines Docker-Containers.

Verzeichnis passt. Wenn ich das Verzeichnis im code ändere, kommt der Fehler "Datei nicht gefunden".

Das Working Directory hat prinzipiell nichts mit dem Verzeichnis der Datei zutun.
Daher hat er Dir auch entsprechend den Link gegeben, dass Du Dir mal die Doku dazu durchliest.

Was passiert, wenn Du ProcessStartInfo als Parameter mitgibst und UseShellExecute deaktivierst?
Wenn das auch nicht funktioniert, dann scheint was an der Registry und der Applikationszuweisung nicht zu stimmen.