21.07.2016, 11:57
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016 12:12 von MEng Thomas.)
Beitrag #1
|
MEng Thomas
LabVIEW-Erfahrener
Beiträge: 25
Registriert seit: Oct 2014
2018
2010
DE
3xxxx
Deutschland
|
Dateipfad der Exe durch Doppelklick übergeben
Hallo LabVIEW-Forum,
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
|
|
|
21.07.2016, 12:12
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016 12:15 von GerdW.)
Beitrag #2
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo Meng Thomas,
Zitat:Meine Frage ist, gibt es Möglichkeiten, dass mir der Pfad der Datei meinem Programm übergeben wird???
Dafür gibt es eine Property in der App-Klasse: CommandLineArguments!
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"?
|
|
|
21.07.2016, 12:38
Beitrag #3
|
MEng Thomas
LabVIEW-Erfahrener
Beiträge: 25
Registriert seit: Oct 2014
2018
2010
DE
3xxxx
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo GerdW
vielen danke für deine schnelle Antwort.
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, 12:41
Beitrag #4
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo MEng Thomas,
1. Hast du die Übergabe der CommandLineArgs beim Erstellen der EXE aktiviert?
2. Standardverhalten unter Windows: Wenn du eine EXE (nochmal) startest, wird sie in den Vordergrund geholt…
|
|
|
21.07.2016, 12:43
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
(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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
21.07.2016, 13:04
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2016 13:10 von MEng Thomas.)
Beitrag #6
|
MEng Thomas
LabVIEW-Erfahrener
Beiträge: 25
Registriert seit: Oct 2014
2018
2010
DE
3xxxx
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo GerdW
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.
Aber wo finde ich diesen LabVIEW Dateidialog?
|
|
|
21.07.2016, 13:13
Beitrag #7
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo MEng,
Zitat:wo finde ich diesen LabVIEW Dateidialog?
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
Beitrag #8
|
MEng Thomas
LabVIEW-Erfahrener
Beiträge: 25
Registriert seit: Oct 2014
2018
2010
DE
3xxxx
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
Hallo GerdW
vielen Dank für deine Lösung!!!
Der LabVIEW-Dateidialog ist aber genau der gleiche wie der Windows-Dialog über (.NET - OpenFileDialog).
|
|
|
21.07.2016, 14:21
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Dateipfad der Exe durch Doppelklick übergeben
(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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |