Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

speedy 15. Nov 2010 22:58

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

Sir Rufo 15. Nov 2010 22:58

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von Bummi (Beitrag 1061783)
wobei spätestens hier das nächste Problem auftreten wird.:wink:
Delphi-Quellcode:
SchreibInMeinLog

Warum sollte?
Zitat:

Zitat von speedy (Beitrag 1061672)
Wenn ich allerdings eine neue Datei anlege mit
Delphi-Quellcode:
assignfile(f,'test.txt');
rewrite(f);
// sonstiger code
closefile(f);
dann funktioniert alles ohne Probleme.


Luckie 15. Nov 2010 23:02

AW: Service-Anwendung und assignfile
 
Der else-Zweig mit der Fehlerbhandlung fehlt bei dir noch, sonst macht es keinen Sinn.

Bummi 15. Nov 2010 23:11

AW: Service-Anwendung und assignfile
 
@Sir Rufo
sorry, hatte ich übersehen...

Sir Rufo 15. Nov 2010 23:23

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von Luckie (Beitrag 1061788)
Der else-Zweig mit der Fehlerbhandlung fehlt bei dir noch, sonst macht es keinen Sinn.

Wieso sollte es keinen Sinn machen? Kommt auf den Sinn an, den ich vorhabe :mrgreen:

Luckie 15. Nov 2010 23:26

AW: Service-Anwendung und assignfile
 
Wir wollen doch wissen, warum es nicht klappt.

Sir Rufo 15. Nov 2010 23:30

AW: Service-Anwendung und assignfile
 
Zitat:

Zitat von Luckie (Beitrag 1061797)
Wir wollen doch wissen, warum es nicht klappt.

Mein Beispiel war ja nur dafür, wie man eigentlich generell mit AssignFile/CloseFile umgehen sollte. Das Abfangen/Protokollieren des Fehlers habe ich ja davor aufgeführt.

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:

Randomize gehört an den Anfang der dpr-Datei und nirgend woanders hin
Delphi-Quellcode:
program foo;
{...}
begin
  Randomize;
  {...}
end.


speedy 16. Nov 2010 22:51

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

mkinzler 16. Nov 2010 22:53

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

s.h.a.r.k 16. Nov 2010 22:55

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:
ExtractFilePath(Application.ExeName)
weiter. Das sollte dir den Pfad liefern, in dem die Exe-Datei liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr.
Seite 2 von 3     12 3      

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