Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
21.07.2016, 11:57 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016 12:12 von MEng Thomas.)
ich habe ein Programm geschrieben, dass Daten aufzeichnen und in eine Datei mit individueller Dateierweiterung (bsp.: *.Test) schreibt. Wenn ich mein Programm starte, kann ich dann mittels Windows-Dialog (.NET - OpenFileDialog), den Pfad einer Datei auswählen und dann diese dann öffnen.
Ich möchte jetzt das durch Doppelklick auf einer dieser Dateien, diese dann automatisch reingeladen werden. (Das Öffnen des Programmes ist kein Problem.)
-> So wie man das ja auch von kommerziellen Programmen wie bsp. Excel her kennt.
Meine Frage ist, gibt es Möglichkeiten, dass mir der Pfad der Datei meinem Programm übergeben wird???
- Programm geschlossen: Der Pfad sollte das am besten in einer Variable stehen.
- Programm offen: Der Pfad sollte am besten durch ein Event übergeben werden.
Schonmal vielen Dank für Bemühungen.
MEng Thomas
Anzeige
21.07.2016, 12:12 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016 12:15 von GerdW.)
Zitat:Programm geschlossen: Der Pfad sollte das am besten in einer Variable stehen.
Das Argument (Dateipfad) bekommst du über diese Property.
Zitat:Programm offen: Der Pfad sollte am besten durch ein Event übergeben werden.
Das klappt so nicht: Windows würde versuchen, eine neue Instanz deiner EXE zu starten - was per Default nicht geht.
Lösung: extra "Zwischen-EXE" programmieren, die das Argument entgegennimmt und damit entweder deine EXE neu startet oder einer schon laufenden den Parameter übermittelt…
Ansonsten: - was bitte ist eine LabVIEW-Version "201"?
1. Jedoch habe das mit dem Property "Kommandozeilenargumente" ausprobiert. Leider steht im Array immer nur ein element mit dem Namen der Exe drin, egal ob ist die Exe direkt öffne oder es über eine Datei mit "Öffnen mit..." bzw. Doppelklick die Exe öffne.
2. Wenn das Programm offen und im Hintergrund ist und ich dann Doppelklick auf eine Datei mache, wird das Programm automatisch wieder ausgewählt und in den Vordergrund geholt.
(21.07.2016 11:57 )MEng Thomas schrieb: ich habe ein Programm geschrieben, dass Daten aufzeichnen und in eine Datei mit individueller Dateierweiterung (bsp.: *.Test) schreibt. Wenn ich mein Programm starte, kann ich dann mittels Windows-Dialog (.NET - OpenFileDialog), den Pfad einer Datei auswählen und dann diese dann öffnen.
Du weißt aber schon, dass auch LabVIEW einen Dateidialog anbietet?!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
1. Vielen Dank ich habe wirklich die Aktivierung der Kommandozeilenargumente beim Bauen der Exe vergessen.
(21.07.2016 12:12 )GerdW schrieb: Lösung: extra "Zwischen-EXE" programmieren, die das Argument entgegennimmt und damit entweder deine EXE neu startet oder einer schon laufenden den Parameter übermittelt…
2. Wie hast du das genau gemeint, hast du dafür vielleicht ein Beispiel?
Hallo jg
(21.07.2016 12:43 )jg schrieb: Du weißt aber schon, dass auch LabVIEW einen Dateidialog anbietet?!
das wusste ich bis jetzt noch nicht, kenne nur die LabVIEW-PopUps, die aber nicht so besonders aussehen und ich daher auch dort die von Windows nehme. Bin auch mit denen von Windows auch soweit zufrieden.
Da, wo alle Funktionen zu finden sind, die mit Dateien zu tun haben? In der Datei-Funktionspalette???
zu 2.
Man erstellt eine kleine Mini-EXE, die nur das CommandLineArg entgegennimmt. Dieses "schaut" dann nach, ob die eigentliche EXE schon läuft: falls NEIN, wird die EXE gestartet. Falls JA, wird der EXE das CommandLineArg per UDP/TCP/sonstwie Netzwerk übermittelt…
(21.07.2016 13:24 )MEng Thomas schrieb: Der LabVIEW-Dateidialog ist aber genau der gleiche wie der Windows-Dialog über (.NET - OpenFileDialog).
Genau (man kann/konnte es auch umstellen) - deshalb kann man sich das mit .NET ja auch schenken.
Wobei ich nicht unterschlagen will, dass der Aufruf über .NET ein paar nette zusätzliche Möglichkeiten ermöglicht.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!