AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Service-Anwendung und assignfile

Ein Thema von speedy · begonnen am 15. Nov 2010 · letzter Beitrag vom 16. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
speedy

Registriert seit: 19. Sep 2003
55 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 22:51
So, habs hinbekommen den Debugger laufen zu lassen...

"Im Projekt Project1.exe ist eine Exception der Klasse EInOutError mit der Meldung 'Datei nicht gefunden' aufgetreten."

Die Datei ist aber zweifelsfrei im gleichen Pfad wie die .exe vorhanden.

Pfad des Projekts ist hierbei in einem Unterordner von Dokumente des aktuellen Benutzers (Admin Account unter Win7 x64). Der Dienst läuft hierbei als Localsystem.

Mit einem absoluten Pfad z.B. c:\test.txt funktionierts jetzt plötzlich. Keine Ahnung warum, aber gestern ging es auch damit nicht.

Frage wäre jetzt noch warum Windows die Datei nicht findet, wenn eben kein absoluter Pfad angegeben wird...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 22:53
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:07
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 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

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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:09
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:16
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:17
Stimmt, ganz so deutlich habe ich das nicht erwähnt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:18
Stimmt, ganz so deutlich habe ich das nicht erwähnt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 22:55
Schau dir mal Windows-Verknüpfungen an. Dort gibt es unter Eigenschaften ein Feld namens "Ausführen in:". Damit kannst du den lokalen Kontext, also den Ort an dem die Exe ausgeführt wird einstellen. D.h. nicht jede Anwendung muss in dem Verzeichnis ausgeführt sein, indem Sie liegt. Somit sind relative Pfade immer mit Vorsicht zu genießen.

-- EDIT1: No red box...
-- EDIT2: Vielleicht hilft dir ja ExtractFilePath(Application.ExeName) weiter. Das sollte dir den Pfad liefern, in dem die Exe-Datei liegt.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:00
Oder ParamStr(0) , dann wird die Unit Forms nicht benötigt (Application.Exename verwendet ParamStr(0))
Markus Kinzler
  Mit Zitat antworten Zitat
speedy

Registriert seit: 19. Sep 2003
55 Beiträge
 
Delphi XE5 Professional
 
#10

AW: Service-Anwendung und assignfile

  Alt 16. Nov 2010, 23:07
Alles klar
Danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.
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