Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Service-Anwendung und assignfile (https://www.delphipraxis.net/155980-service-anwendung-und-assignfile.html)

Bummi 16. Nov 2010 22:56

AW: Service-Anwendung und assignfile
 
Zitat:

Pfad des Projekts ist hierbei in einem Unterordner von Dokumente des aktuellen Benutzers (Admin Account unter Win7 x64).
Wahrscheinlich der denkbar schlechteste Ort ...
Nimm, doch einen sinnvollen Ordner und wenn Anwendung und Datei im gleichen Ordner liegen müssen greife per
ExtractFilePath(Application.Exename)+'wieauchimmer .txt' zu.

Luckie 16. Nov 2010 22:59

AW: Service-Anwendung und assignfile
 
Über leg doch mal. Du steht in einer Bibliothek, in der du dich nicht auskennst, und sollst ein Buch holen. Sagen wir das Buch "Raise and Fall of the Roman Empire". Wenn dir jemand sagt: "Gehe in Raum 3, Abteilung 5, Regal 11, unterstes Regalbrett, dritte Buch von links: "Raise and Fall of the Roman Empire". Wie wirst du das Buch eher finden, wenn du nicht zufällig genau davor stehst, nur alleine mit dem Titel oder mit der kompletten Angabe wo das Buch steht? Genauso geht es Windows auch. Wenn das Arbeitsverzeichnis nicht zufällig, das Verzeichnis mit der gewünschten Datei ist, wird Windows die Datei nicht finden.

Und dass das gestern nicht geklappt hat, könnte an einem anderen Fehler im Programm gelegen haben.

PS: Mir ist leider kein passender Autoindustrievergleich eingefallen. ;)

mkinzler 16. Nov 2010 23:00

AW: Service-Anwendung und assignfile
 
Oder
Delphi-Quellcode:
ParamStr(0)
, dann wird die Unit Forms nicht benötigt (Application.Exename verwendet ParamStr(0))

speedy 16. Nov 2010 23:07

AW: Service-Anwendung und assignfile
 
Alles klar ;)
Danke!

Sir Rufo 16. Nov 2010 23:07

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von mkinzler (Beitrag 1062070)
Weil relative Pfade relativ zum Arbeitsverzeichnis sind, welches nicht unbedingt das Verzeichnis sein muss, in dem die Exe liegt. Deshalb realtive Pfade dynamisch als vollständige absolute Pfade zusammensetzen

Und gerade ein Service hat als Arbeitsverzeichnis nicht das Anwendungsverzeichnis ;)

Ich würde auf
Delphi-Quellcode:
Application.Exename
verzichten und dafür
Delphi-Quellcode:
ParamStr( 0 )
verwenden. Für den Zugriff auf
Delphi-Quellcode:
Application
benötigt man die Unit Forms und die hat gerade in einer Service-Anwendung nun gar nichts verloren ;)

Weiterhin würde ich generell in das Programmverzeichnis nicht schreibend zugreifen (Ausnahme bei der Installation). Abgesehen davon, dass das meistens eh nicht geht (fehlende Rechte) finde ich es als äusserst störend bei einer Deinstallation noch Dateileichen vorzufinden, weil der Uninstaller per Default dass Programmverzeichnis nur dann löscht, wenn es leer ist.

Es gibt schließlich genug Verzeichnisse, die dafür vorgesehen sind und wo ich auch weiß, aha, Programm ist weg, will ich nicht mehr, dann können die Daten auch weg.

mkinzler 16. Nov 2010 23:09

AW: Service-Anwendung und assignfile
 
Zitat:

Ich würde auf Application.Exename verzichten und dafür ParamStr( 0 ) verwenden. Für den Zugriff auf Application benötigt man die Unit Forms und die hat gerade in einer Service-Anwendung nun gar nichts verloren
http://www.delphipraxis.net/1062075-post23.html

Sir Rufo 16. Nov 2010 23:16

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von mkinzler (Beitrag 1062081)
Zitat:

Ich würde auf Application.Exename verzichten und dafür ParamStr( 0 ) verwenden. Für den Zugriff auf Application benötigt man die Unit Forms und die hat gerade in einer Service-Anwendung nun gar nichts verloren
http://www.delphipraxis.net/1062075-post23.html

Bei mir steht aber noch, dass die Unit Forms in einer Service-Anwendung nichts verloren hat :mrgreen:

mkinzler 16. Nov 2010 23:17

AW: Service-Anwendung und assignfile
 
Stimmt, ganz so deutlich habe ich das nicht erwähnt

Sir Rufo 16. Nov 2010 23:18

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von mkinzler (Beitrag 1062083)
Stimmt, ganz so deutlich habe ich das nicht erwähnt

:cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz