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!
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?
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...
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.
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...
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.