LabVIEWForum.de - Programm-Startoptionen

LabVIEWForum.de

Normale Version: Programm-Startoptionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Leuts,

habe mal eine Frage - wenn ich eine Anwendung programmiere und eine Information zu dem Arbeitsverzeichnis benötige, wo das Programm abliegt - wo könnte diese Information gespeichert werden? Müsste ich dann z.B. einen Windows-Registry-Eintrag erzeugen und den dann auslesen? Das wäre jetzt so mein erster Gedanke, weil ein Installationsprogramm macht es doch auch, dass es Registry-Eingräge erzeugt und die dann vom Programm ausgelesen werden, oder?
Hallo hasenfuss,

hilft dir die Funktion "aktueller Pfad des VIs" dabei nicht schon weiter, oder soll eine externe Anwendung auf diesen Pfad zugreifen können?


Gruß, Marko
Hallo Hasenfuss,

Zitat:Information zu dem Arbeitsverzeichnis benötige, wo das Programm abliegt
- das "Arbeitsverzeichnis" muss nicht identisch sein mit dem Verzeichnis, in dem die EXE gespeichert ist! (Siehe hier, da gibt es einen extra Anschluß für das "Working Directory"!
- es gibt, neben dem schon genannten VI-Path, auch noch die AppDir-Konstante...
(27.01.2013 14:46 )Trinitatis schrieb: [ -> ]Hallo hasenfuss,

hilft dir die Funktion "aktueller Pfad des VIs" dabei nicht schon weiter, oder soll eine externe Anwendung auf diesen Pfad zugreifen können?


Gruß, Marko

Die Funktion kannte ich bisher noch nicht. Funktioniert die dann später auch, wenn das Programm compiliert wurde?
(27.01.2013 14:52 )GerdW schrieb: [ -> ]Hallo Hasenfuss,

Zitat:Information zu dem Arbeitsverzeichnis benötige, wo das Programm abliegt
- das "Arbeitsverzeichnis" muss nicht identisch sein mit dem Verzeichnis, in dem die EXE gespeichert ist! (Siehe hier, da gibt es einen extra Anschluß für das "Working Directory"!
- es gibt, neben dem schon genannten VI-Path, auch noch die AppDir-Konstante...

Dass ist schon klar. Ich habe mir eine Routine geschrieben LeseIniDatei.VI, die Standard-Werte einlesen soll - darunter auch das Arbeitsverzeichnis. Aber die Ini-Datei muss ja auch irgendwo stehen - halt in dem Verzeichnis, wo die ausführbare Programmdatei ist oder so. Dass war mir eben aufgefallen, dass ich den Fehler abfangen muss, wenn die Ini-Datei nicht vorhanden ist.

Die eben vorgeschlagene Funktion mit "aktueller Pfad des VIs" scheint das richtige dafür zu sein.
Hallo Hasenfuss,

Zitat:Die eben vorgeschlagene Funktion mit "aktueller Pfad des VIs" scheint das richtige dafür zu sein.
Eben nicht! Suche einfach mal im Forum, es gibt jede Menge Beiträge zum Thema (meist: "in der EXE wird die Datei wird nicht gefunden...") - der Pfad eines VIs ändert sich im Executable!

Dies passiert dir mit AppDir nicht - dies funktioniert sowohl aus dem Projekt heraus als auch in der EXE!

Zweiter Tipp: LabVIEW verwendet standardmäßig den Unterordner "data" im AppDir für zusätzlich bei EXE-Erstellen eingebundenen Dateien. Da würde ich die INI hineinpacken!
Dritter Tipp: Wenn du die EXE im Windows-Standardverzeichnis "C:\Programme" (o.ä.) installierst, kannst du Probleme bei Schreibzugriffen bekommen - da braucht man gern mal Admin-Rechte...
(27.01.2013 15:41 )GerdW schrieb: [ -> ]Hallo Hasenfuss,

Eben nicht! Suche einfach mal im Forum, es gibt jede Menge Beiträge zum Thema (meist: "in der EXE wird die Datei wird nicht gefunden...") - der Pfad eines VIs ändert sich im Executable!

Dies passiert dir mit AppDir nicht - dies funktioniert sowohl aus dem Projekt heraus als auch in der EXE!

Zweiter Tipp: LabVIEW verwendet standardmäßig den Unterordner "data" im AppDir für zusätzlich bei EXE-Erstellen eingebundenen Dateien. Da würde ich die INI hineinpacken!
Dritter Tipp: Wenn du die EXE im Windows-Standardverzeichnis "C:\Programme" (o.ä.) installierst, kannst du Probleme bei Schreibzugriffen bekommen - da braucht man gern mal Admin-Rechte...

Hi GerdW,

danke für Deine Tipps. Das wird ja als immer komplexer. Ich glaub, ich muss dieses Thema erstmal weiter nach hinten schieben und mich zu einem späteren Zeitpunkt damit wieder befassen, weil ich jetzt noch an etwas anderem dranhänge, was ich fertig bekommen muss.
Es sei in diesem Zusammenhang auch mal auf das VI "Get system directory" hingwiesen. Damit bekommt man die Pfade zu allen systemrelevanten Ordnern. Die sind abhängig vom Betriebssystem, also bei WinXP teilweise anders anders als bei Win7.
Bei Win7 sollen Daten nicht mehr mit im Ordner C:\Programme liegen. Dieser Ordner ist besonders geschützt, mit der Folge, dass es auf Daten keinen unbeschränkten Zugriff gibt.
[attachment=43272]
Referenz-URLs