AGB  ·  Datenschutz  ·  Impressum  







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

Dateisperre freigeben

Ein Thema von mumu · begonnen am 8. Sep 2005 · letzter Beitrag vom 21. Mär 2006
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Dateisperre freigeben

  Alt 8. Sep 2005, 11:33
Hi, kann mir jemand sagen, wie das Programm Unlocker, es hinbekommt alle Sperren auf eine Datei freizugeben. Wie lautet da der API Befehl?

danke schonma
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 11:54
also ich würde mal ganz frech den Entwickler der software fragen...

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#3

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 13:38
jo, hab ich schon gemacht, hat sich aber noch net gemeldet

naja, ich bin jedenfalls schon so weit:

Delphi-Quellcode:
var hFile : Cardinal;
    filename : string;
    FileSizeLow : Cardinal;
    FileSizeHigh: ^Cardinal;
    error : Cardinal;
begin
  hFile := CreateFile(pchar(fileName),
                   GENERIC_READ,
                   FILE_SHARE_READ or FILE_SHARE_WRITE,
                   nil,
                   OPEN_EXISTING,
                   FILE_ATTRIBUTE_NORMAL,
                   0);
  error := GetLastError();
  ShowMessage(inttostr(error));

  GetMem(FileSizeHigh, SizeOf(Cardinal));
  try
    FileSizeLow := GetFileSize(hFile, FileSizeHigh);
    
    if UnLockFile(hFile, 0, 0, FileSizeLow, FileSizeHigh^) = false then
    begin
      error := GetLastError();
      ShowMessage(inttostr(error));
    end;
  finally
    FreeMem(FileSizeHigh);
  end;
naja also createfile funktioniert ohne probleme, bekomme da keinen fehler.
bei unlockfile jedoch erhalte ich fehlercode: 158
ERROR_NOT_LOCKED
158 The segment is already unlocked.

Die angegebene Datei ist 100 pro gelockt. Das problem ist halt das unlockfile nur bereiche einer datei freigibt, jedoch nicht die Datei als ganze. Da jedoch nur die gesamte Datei gesperrt ist und nicht nur ein bereich, wird unlockfile nicht funktionieren, oder?

jemand noch irgendwelche tipps?
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 14:16
Zitat:
The UnlockFile function unlocks a region in an open file. Unlocking a region enables other processes to access the region.

For an alternate way to specify the region, use the UnlockFileEx function.

BOOL UnlockFile(
HANDLE hFile,
DWORD dwFileOffsetLow,
DWORD dwFileOffsetHigh,
DWORD nNumberOfBytesToUnlockLow,
DWORD nNumberOfBytesToUnlockHigh
);

Parameters
hFile
[in] Handle to a file that contains a region locked with LockFile. The file handle must have been created with either the GENERIC_READ or GENERIC_WRITE access right. For more information, see File Security and Access Rights.
dwFileOffsetLow
[in] Low-order word of the starting byte offset in the file where the locked region begins.
dwFileOffsetHigh
[in] High-order word of the starting byte offset in the file where the locked region begins.
Windows Me/98/95: dwFileOffsetHigh must be 0, the sign extension of the value of dwFileOffsetLow. Any other value will be rejected.
nNumberOfBytesToUnlockLow
[in] Low-order word of the length of the byte range to be unlocked.
nNumberOfBytesToUnlockHigh
[in] High-order word of the length of the byte range to be unlocked.
wenn du den gesamten dateilock freigeben willst wird die funktion wohl nicht taugen oder?

aber vieleicht hilft dir die msdn doku.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#5

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 14:42
ja schon, das hab ich ja auch oben geschrieben, damit mir das nicht weiterhelfen wird. msdn hab ich schon ganz schön durchgestöbert, finde leider nichts...

jemand noch ansätze?

muss ich vielleicht einen treiber programmieren, damit das überhaupt funktioniert?!
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 17:07
Habt ihr euch schonmal gefragt, wieso dort eine .sys-Datei liegt? Nicht? Tut das mal!
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 17:16
Zitat von Olli:
Habt ihr euch schonmal gefragt, wieso dort eine .sys-Datei liegt? Nicht? Tut das mal!
Wo liegt die? Und was macht eine '*.Sys' Datei?

Bye
Christian
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: Dateisperre freigeben

  Alt 8. Sep 2005, 21:09
Zitat von Kedariodakon:
Wo liegt die? Und was macht eine '*.Sys' Datei?
Die liegt im Programmverzeichnis und was genau sie macht, habe ich noch nicht näher analysieren können. Der Treiber wird aber geladen und auch benutzt.

Übrigens: zu den obigen Kommentaren mit UnlockFile() ... Handles sind prozeßspezifisch. Will heißen, daß man erstmal in den fremden Prozeß rein muß
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Dateisperre freigeben

  Alt 9. Sep 2005, 17:54
Wer sperrt die File überhaupt? Das OS oder die Platte selbst (falls die das überhaupt kann)...

Wie kann man überhaupt eine Liste der gesperrten Dateien sehen?

Bye
Christian
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Dateisperre freigeben

  Alt 9. Sep 2005, 18:06
Zitat von Kedariodakon:
Wie kann man überhaupt eine Liste der gesperrten Dateien sehen?
Indem man die Handles des Prozesses auflistet und deren Namen findet. Das geht zwar auch ohne Treiber, aber nur in einem bestimmten Fall. Daher vermutlich der Treiber.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


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:38 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