AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff sperren

Ein Thema von Killer · begonnen am 13. Nov 2003 · letzter Beitrag vom 15. Nov 2003
Thema geschlossen
Seite 1 von 2  1 2      
Killer

Registriert seit: 11. Nov 2003
152 Beiträge
 
Delphi 6 Enterprise
 
#1

Zugriff sperren

  Alt 13. Nov 2003, 13:12
Hi wie kann ich den Zugriff auf einzelne Ordner, Laufwerke und Dateien sperren?

Das folgende hab ich in der WinHilfe gefunden:
Zitat:
The FSCTL_LOCK_VOLUME DeviceIoControl operation locks a volume. A locked volume can be accessed only through handles to the file object (*hDevice) that locks the volume.

dwIoControlCode = FSCTL_LOCK_VOLUME; // operation code
lpInBuffer = NULL; // pointer to input buffer; not used; must be NULL
nInBufferSize = 0; // size of input buffer; not used; must be zero
lpOutBuffer ; // pointer to output buffer; not used; must be NULL
nOutBufferSize ; // size of output buffer; not used; must be zero
lpBytesReturned ; // pointer to DWORD used by DeviceIoControl function


Parameters

lpInBuffer

Points to an input buffer. Not used with this operation. Set to NULL.

nInBufferSize

Specifies the size, in bytes, of the buffer pointed to by lpInBuffer. Not used with this operation. Set to zero.

lpOutBuffer

Points to an output buffer. Not used with this operation. Set to NULL.

nOutBufferSize

Specifies the size, in bytes, of the buffer pointed to by lpOutBuffer. Not used with this operation. Set to zero.

lpBytesReturned

Pointer to a DWORD. This value cannot be NULL. Although the FSCTL_LOCK_VOLUME operation produces no output data and lpOutBuffer should be NULL, the DeviceIoControl function uses the variable pointed to by lpBytesReturned. After the operation, the value of this variable is without meaning.
Naja leider ist kein Beispiel dabei, ich weiß auch nicht, obs überhaupt die richtige Funktion wäre. Kann mir jemand helfen?
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zugriff sperren

  Alt 13. Nov 2003, 20:04
Moin Killer,

unter welchem Betriebssystem willst Du welche Art des Zugriffs sperren?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
 
Daniel B
(Gast)

n/a Beiträge
 
#3

Re: Zugriff sperren

  Alt 13. Nov 2003, 20:23
Läuft das wieder auf den gleichen Blödsinn raus?
http://www.delphipraxis.net/internal...ct.php?t=13254
 
Killer

Registriert seit: 11. Nov 2003
152 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Zugriff sperren

  Alt 14. Nov 2003, 13:16
@Christian Seehase:

Als Betriebssystem möchte ich WinXP nehmen und Art des Zugriffs hmm, ich möchte einfach den Zugriff auf bestimmte Dateien und Ordner sperren können...

@Daniel B:

Nein tut es nicht. Der Grund dafür ist, dass wenn ich zb. in eine bestimmte Datei mit meinem Proggie was reinschreibe, dass man die nicht gleichzeitig öffnen kann, also Zugriff während der Laufzeit meines Programms sperren!
 
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Zugriff sperren

  Alt 14. Nov 2003, 13:40
Zitat von Killer:
Der Grund dafür ist, dass wenn ich zb. in eine bestimmte Datei mit meinem Proggie was reinschreibe, dass man die nicht gleichzeitig öffnen kann, also Zugriff während der Laufzeit meines Programms sperren!
Wenn ich Dich richtig verstehe, hättest Du gerne exklusiven Zugriff auf eine Datei, während Du aus ihr liest oder in sie schreibst. In der OH unter TFileStream (VCL) oder CreateFile (Win32) solltest Du fündig werden.
gruß, choose
 
Killer

Registriert seit: 11. Nov 2003
152 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Zugriff sperren

  Alt 14. Nov 2003, 16:43
Danke aber das weiß ich auch, dass ich mit einem Filestream exklusiven Zugriff auf eine Datei bekommen kann. Aber ich möchte ganze Ordner sperren und soweit ich weiß geht das mit einem Filestream nicht...
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Zugriff sperren

  Alt 14. Nov 2003, 16:51
Zitat von Killer:
Danke aber das weiß ich auch, dass ich mit einem Filestream exklusiven Zugriff auf eine Datei bekommen kann. Aber ich möchte ganze Ordner sperren und soweit ich weiß geht das mit einem Filestream nicht...
Wozu den ganzen Ordner sperren wenn du nur:
Zitat:
in eine bestimmte Datei mit meinem Proggie was reinschreibe, dass man die nicht gleichzeitig öffnen kann, also Zugriff während der Laufzeit meines Programms sperren!
Das machen willst?
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Killer

Registriert seit: 11. Nov 2003
152 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Zugriff sperren

  Alt 14. Nov 2003, 18:02
Naja ich möchte eigentlich keine Diskussion anzetteln, sondern möchte wissen, wie man einen Ordner sperren kann bzw. ob das möglich ist...
 
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: Zugriff sperren

  Alt 14. Nov 2003, 18:12
Hallo K.....,

also bei mir verbleibt doch ein bitterer Beigeschmack. Wenn es völlig ausreichend ist einzelne Dateien zu sperren, dann ist das für einen gesamten Ordner nicht erforderlich.
 
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Zugriff sperren

  Alt 14. Nov 2003, 18:21
Ich verstehe das auch nicht ganz.

Falls Du aber zusammengehörige Dateien erstellen/verändern willst, die konsistent bleiben müssen (zB PAS und DFM), könntest Du soetwas ähnliches wie PessimisticLocking bei Datenbanken (der Experte verzeih bitte!) realisieren, indem Du die Dateien nicht hintereinander öffnest, schreibst und schließst, sondern Dir zunächst die exklusiveren Handles jeder zu verändernen Datei holst, dann alle Dateien schreibst und anschließend (oder bei einem Fehler! Stichworte: MutualExclusion, HoldAndWait) die Handles wieder freigibst.

Löst das Dein Problem? Vielleicht kannst Du das Problem genauer beschreiben, das "raten" ist nämlich ziemlich ineffizient.
gruß, choose
 
Thema geschlossen
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 06:53 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