![]() |
AW: Service-Anwendung und assignfile
Okay ;)
Das schau ich mir morgen mal genauer an wie das mit Service-Anwendung debuggen funktioniert. Ist das erste Mal, dass ich mich an nem Dienst versuche... |
AW: Service-Anwendung und assignfile
Zitat:
Zitat:
|
AW: Service-Anwendung und assignfile
Der else-Zweig mit der Fehlerbhandlung fehlt bei dir noch, sonst macht es keinen Sinn.
|
AW: Service-Anwendung und assignfile
@Sir Rufo
sorry, hatte ich übersehen... |
AW: Service-Anwendung und assignfile
Zitat:
|
AW: Service-Anwendung und assignfile
Wir wollen doch wissen, warum es nicht klappt.
|
AW: Service-Anwendung und assignfile
Zitat:
Die weitere Ausschmückung bleibt jedem selber überlassen. Generell würde ich einfach nur das AssignFile/CloseFile wie Object := TObject.Create/Object.Free immer in einem try..finally Block einschliessen. Sozusagen die Basic-Rules, ähnlich wie Zitat:
|
AW: Service-Anwendung und assignfile
So, habs hinbekommen den Debugger laufen zu lassen... :stupid:
"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... |
AW: Service-Anwendung und assignfile
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
|
AW: Service-Anwendung und assignfile
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
Delphi-Quellcode:
weiter. Das sollte dir den Pfad liefern, in dem die Exe-Datei liegt.
ExtractFilePath(Application.ExeName)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 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