Autor Beitrag
Rapidz
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 17.11.09 11:52 
Hallo,
ich bin neu hier und habe da mal ne Frage. Ich habe versucht ein Programm zu programmieren das ein kleines Standart Interface hat mit ein paar Buttons, die bei einem Klick verschiedene .exe Dateien starten. Hab das auch soweit hingekriegt aber ich würde die .exe Dateien in das Programm integrieren. Bis jetzt habe ich den Pfad immer direkt angeben müssen. (Process.Start( "binaries\\02.exe"); ) Habe die .exe Dateien auch mal als Ressourcen hinzugefügt und ich denke das man da noch was einstellen muss (hab den Zeile markiert, bei der ich die falsche Einstellung vermute) aber vlt darf man die Daten auch gar nich als ressource hinzufügen.

Noch was kurz zu mir: Ich bin Azubi im ersten Jahr und lerne in der Schule C#. Ich habe Visual Studio 2008 Standart falls das wichtig ist.

Falls noch weiter Infos gebraucht werden bitte bescheid sagen.

Danke im vorraus.

MfG Christopher alias Rapidz
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Rapidz am Di 17.11.09 15:01, insgesamt 1-mal bearbeitet
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 17.11.09 13:22 
Hallo Christopher und :welcome:

Zunächst bitte ich dich um eine bessere Überschrift: Fragen hat jeder; im WinForms-Unterforum geht es natürlich um C#; in einem Programmierer-Forum geht es (fast) immer um Programmierung. Außerdem hat dein Problem nichts mit WinForms zu tun. Siehe dazu die Forumshilfe. Über den Button mit der Schere kannst du das auch nachträglich ändern.

Zu deinem Problem: Beim Aufruf von Process.Start sucht NET bzw. Windows in den aktuellen Pfad-Angaben. Es kann also nur dort fündig werden, wo es sowieso suchen würde (z.B. unter Start|Ausführen). In allen anderen Fällen muss ein Pfad angegeben werden!

Du schreibst leider nichts davon, welche Struktur auf der Festplatte du eigentlich haben willst. Wenn die exe-Dateien wirklich im binaries-Verzeichnis stehen sollen, gibt es höchstens zwei Möglichkeiten:

1. dein Verfahren mit ausdrücklicher Angabe des (Unter-) Verzeichnisses vom Ausführungspfad deiner eigenen Exe
2. ohne Unterverzeichnis, aber mit Eintrag in der app.config deiner Exe; dann sucht NET selbst:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="binaries"/>
      </assemblyBinding>
   </runtime>
</configuration>

Ich bin mir aber nicht sicher, ob der Aufruf über Process.Start überhaupt diese config-Datei berücksichtigt.

Wenn die Exe "irgendwo" steht, muss auf jeden Fall der vollständige Pfad angegeben werden.

Jürgen

PS. Ich kenne keine Standart-Version von VS. Vielleicht meinst du eine andere Variante, die bei Wikipedia: Standart genannt ist.
Rapidz Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 17.11.09 14:05 
Hi Jürgen,
ich glaube ich hab mich etwas falsch ausgedrückt. Dieser binaries Ordner habe ich selber im Debug Ordner von Visual Studio erstellt, das ich es testen kan. Er hätte auch "xyz" heißen können. Gibt es keine Möglichkeit die exe Dateien direkt in das Programm einzubinden, so dass ich zum Schluss nur ein Ausführbares-Programm habe, das ich auf jeden X-beliebigen PC übertragen kan und es dort trozdem funktioniert?

Ich habe die hier emea.microsoftstore....eneric&WT.srch=1
Einloggen, um Attachments anzusehen!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 17.11.09 15:15 
Nein, das geht in aller Regel nicht. Dabei ist noch gar nicht berücksichtigt, ob es sich ebenfalls um NET-Applikationen handelt.

Wenn die anderen Programme ebenfalls von dir erstellt worden sind, dann kannst du die Quelldateien deinem Projekt hinzufügen; dann sind die Teile Bestandteile deines Programms. Dann kannst du sie aber auch nicht mit Process.Start aufrufen, sondern musst ganz anders vorgehen.

Für eigenständige Programme gilt: Sie sind und bleiben eigenständig. Punkt - fertig - aus.

Jürgen

PS. Meine Bemerkung zur VS-Version hast du trotz meines Hinweises auf Wikipedia nicht verstanden.
Zitat:
Standard (Begriffsklärung) (häufig ist "Standard" gemeint, wenn "Standart" geschrieben wird)

Ich dachte, ein dezenter Hinweis auf einen weit verbreiteten Schreibfehler würde genügen. Aber wenn ich dich mit der Nase darauf stoßen muss, dann soll es eben sein:
Es heißt Standard - mit "d" am Ende - und nicht Standart!
Rapidz Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 17.11.09 15:20 
Ok danke für die Antwort. Habe den Link übersehen.