AGB  ·  Datenschutz  ·  Impressum  







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

DOS-LOG Int $5C über Delphi

Ein Thema von MacGuyver · begonnen am 19. Mär 2005 · letzter Beitrag vom 19. Mär 2005
Antwort Antwort
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#1

DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 08:08
Moin Leute!

Ich schreibe hauptsächlich an einer DOS-Anwendung und sorge für den Ausdruck und Abfragen von speziellen Sachen mittels Delphiprogramme. Ob mein Programm schon läuft finde ich heraus, weil ich eine Datei logge und das dann abfrage. Für mich liegt nun das Problem vor, wie ich ein File-Log über Interrupt $5C in Delphi setzen und auslesen kann. Es geht irgendwie über die API. Kann mir da jemand helfen?

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 08:16
Zitat von MacGuyver:
Ich schreibe hauptsächlich an einer DOS-Anwendung und sorge für den Ausdruck und Abfragen von speziellen Sachen mittels Delphiprogramme.
Delphi16 (1) oder Delphi32 (2-7,9).

Zitat von MacGuyver:
Ob mein Programm schon läuft finde ich heraus, weil ich eine Datei logge und das dann abfrage.
Soweit verständlich und üblich...

Zitat von MacGuyver:
Für mich liegt nun das Problem vor, wie ich ein File-Log über Interrupt $5C in Delphi setzen und auslesen kann. Es geht irgendwie über die API. Kann mir da jemand helfen?
Was willst Du machen (ich habe keine Ahnung, was INT 5C mit Logs zu tun hat, bzw. warum es überhaupt Interrupts sein müssen...
Ein paar Informationen zur Umgebung und zum Ziel (statt dem Problem) könnten nicht schaden.

Gruß Nico
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 08:30
Mit dem Interrupt $5C kannst du Dateien byteweise oder sogar ganz sperren. Wenn dann von einer anderen Station aus probiert wird, diese Bytes zu loggen, kommt eine Fehlermeldung zurück. Wenn ich mein DOS-Programm starte logge ich von einer Datei das erste Byte. Wenn es nicht klappt, dann läuft das Programm bereits an einer anderen Station. Auf diese Weise hat jeder Rechner ein eigenes Unterverzeichnis, wo er die Datei logged. Gleichzeitig sperrt es ein doppeltes Ausführen an einer Station. Nun muß ich zwischendurch probieren, ob das Delphi-Programm schon läuft. Wenn ja, dann gut, sonst wird das Programm gestartet. Aus diesem Grund muß ich nun im Delphi-Programm ein Log setzten, das ich vom DOS-Programm aus checken kann. Einfach ein Byte in eine Datei schreiben ist nicht gut, falls das Programm abbricht und das Byte noch gesetzt ist, kann es nicht einfach wieder gestartet werden. Ein Log wiederum wird vom Betriebssystem aus gelöscht und es kann sofort wieder geöffnet werden.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 08:50
Lock-Files kannst Du auch mit der Win32-API CreateFile umsetzen. Ist eine Frage der Flags, z.B.... ohne FILE_SHARE_READ/WRITE damit andere Prozesse die Datei nicht öffnen können, mit OPEN_ALWAYS damit vorhandene Dateien nicht stören, usw.
(bei FILE_FLAG_DELETE_ON_CLOSE bin ich mir nicht sicher, ob es unter Win9x funktioniert, aber das kann man ja ausprobieren...)

Gruß Nico
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 09:28
Jau, so habe ich das früher immer getan, klappte gut. Bis an einem Abend ich die Kriese bekommen habe. 2x WinXP-Home mittels TCP-IP im Lan. Ich habe die Daten mit $12 geöffnet. Das heißt ich möchte lesen und schreiben, es darf kein anderer lesen und/oder schreiben. An beiden Rechnern wurde die Datei geöffnet, ohne Fehlermeldung. Deshalb benutze ich den Interrupt $5c was dann auch sicher klappt. Nur ein DOS-Rechner oder Win98 nicht durchgestartet im DOS-Mode kennt die Funktion nicht. Habe ich so einen Rechner, dann benutze ich die Methode der File-Locks.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 09:39
Zitat von MacGuyver:
Jau, so habe ich das früher immer getan, klappte gut. Bis an einem Abend ich die Kriese bekommen habe. 2x WinXP-Home mittels TCP-IP im Lan.
Offline-Dateien aktiviert? (kann man AFAIK auch per Flags umgehen)

Zitat von MacGuyver:
Deshalb benutze ich den Interrupt $5c was dann auch sicher klappt. Nur ein DOS-Rechner oder Win98 nicht durchgestartet im DOS-Mode kennt die Funktion nicht.
Klingt so, als ob Du den Interrupt unter XP verwendest?
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 10:37
Ja, den benutze ich unter XP. Ab Win95 ist das Teil standardmäßig mit drin. Für den Aufruf über eine Windowsanwendung gibt es so etwas als API, ich meine das schon einmal gesehen zu haben.
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 15:58
Ich habe die Lösung! Nach einem kurzen Telefongespräch mit meinem Kollegen wußte ich, wie ich weiter machen muß. Danke Markus! In der API sind die Funktionen LockFile und UnlockFile. Mit diesen Funktionen kann man byteweise einen Bereich sperren. Beim einem Versuch einer anderen Station oder einer anderen Anwendung dies Bytes zu loggen, kommt von der Funktion LockFile ein false zurück.

Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 15:59
Moin!

Mich würde vor allem mal die Funktionsnummer interessieren die du bei INT 5Ch aufrufst. Der Interrupt 5Ch bietet viel, aber was nutzt du davon?

MfG
Muetze1
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#10

Re: DOS-LOG Int $5C über Delphi

  Alt 19. Mär 2005, 16:51
Zitat von MacGuyver:
Ja, den benutze ich unter XP.
Vielleicht ein Mißverständnis meinerseits?
Ich dachte Du verwendest den Interrupt aus einem 32-Bit Delphi-Programm (wenn ja, dann wüßte ich gerne (reine Neugierde) wo Dokumentationen darüber zu finden sind).
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz