![]() |
Re: Dateisperre freigeben
Zitat:
![]() Der "Autor" wird seit Jahren als Dieb beschimpft (diverse Mailinglisten). Zitat:
Zitat:
Kleine Empfehlung: besorge dir das PSDK und das DDK (besser IFSKit oder WDK - in letzterem ist das IFSKit enthalten), danach besorge dir eine Desktop-Suchmaschine (ich benutze Copernic/CDS) - danach lasse das PSDK und das DDK indizieren und du kannst sogleich alles was du suchst einfach finden ;) Mache ich schon eine Weile mit meinen Sourcen. |
Re: Dateisperre freigeben
Zitat:
vielen dank erstmal, mal schauen ob ichs jetzt hinkrieg. meld mich mal wenn ich zeit gefunden hab weng was zu machen. gruß |
Re: Dateisperre freigeben
Zitat:
Schreib mir mal ne PM. |
Re: Dateisperre freigeben
Zitat:
Wer das Geld für MSVC hat, kann sich auch ![]() |
Re: Dateisperre freigeben
Zitat:
Zitat:
|
Re: Dateisperre freigeben
Hallo ihr beiden, ihr werdet etwas offtopic. ;)
|
Re: Dateisperre freigeben
Zitat:
Zitat:
edit: ja, es geht gerade darum, welche Tools eingesetzt werden können um das Problem effizienter zu lösen - dazu gehören nunmal IDEs und Tools :) (wie auch immer, die Diskussion ist in dieser Richtung ohnehin zu Ende *g*) |
Re: Dateisperre freigeben
Diskutioert ihr da jetzt nicht gerade die Vorzüge irgendwelche IDEs und Hilfsprogrammen? Aber gut wenn ihr meint... Ich will nichts gesagt haben. :cyclops:
|
Re: Dateisperre freigeben
Zitat:
Zitat:
|
Re: Dateisperre freigeben
Zitat:
An DDKBUILD hatte mich zuvor gestört, daß man bittesehr bei jedem Mal seine Projektdateien neu erstellen möge - und zwar manuell. Das hat sich mit meinem Perlscript dann ja auch erledigt :-P Danke nochmal, Nico! :mrgreen: :zwinker: Gruß nach Darmstadt und zum Rest der im Thread beteiligten, |
Re: Dateisperre freigeben
Liste der Anhänge anzeigen (Anzahl: 1)
also ich hab jetzt schonmal folgendes hinbekommen:
ich hab mir ein kleines delphi test programm geschrieben, dass mir eine Datei (hier C:\Test.txt) exklusiv öffnet. ich hab es jetzt hinbekommen mit code aus nebbets buch mir alle geöffneten handles eines projekts anzeigen zu lassen. dazu öffne ich den Prozess mit OpenProcess, dann ruf ich ZwQuerySystemInformation auf, um die handle informationen zu bekommen mit ZwDuplicateObject dupliziere ich den Handle und mit ZwQueryObject les ich informationen über das Handle aus. Somit hab ich mir mal nur die File Handles rausgefiltert. Komischer weise sind das aber immer ganz ganz viele, jedoch wird immer nur das aktuelle Verzeichnis in dem das Programm läuft gesperrt und die geöffnete Datei (Test.txt). jedoch gibt es diese zwei objecte mit jede menge handles (siehe Anhang: all_file_handles.txt) mein test programm hat jetzt beispielsweise die ProzessId: B84 wenn man in der all_file_handles.txt schaut sieht man genau folgende zwei einträge mit der prozessId: B84
Code:
meine frage ist jetzt, warum bekomme ich hier so viele handles??? und wieso gehören nur die zwei zum prozess? was sind das dann für andere handles?
Prozess-ID: b84
Object-Address: FD697228 Handle: c GrantedAccess: 100020 Flags: 2 Attributes: 2 HandleCount: 1 PointerCount: 1 ObjectTypeInformation-Name: File ObjectNameInformation-Name: \Device\HarddiskVolume1\ Prozess-ID: b84 Object-Address: 821D9C60 Handle: 4c GrantedAccess: 120089 Flags: 0 Attributes: 0 HandleCount: 1 PointerCount: 1 ObjectTypeInformation-Name: File ObjectNameInformation-Name: \Device\HarddiskVolume1\Test.txt ich bin jetzt auch schon so weit, dass ich das handle an den treiber übergeben kann. nur wie muss ich jetzt vorgehen, wenn ich die dateisperre auf treiber basis lösen will? was muss ich da aufrufen der reihe nach? ich denk mal ich hab eigentlich alle informationen. vielen dank gruß |
Re: Dateisperre freigeben
Zitat:
|
Re: Dateisperre freigeben
Siehe Nico's Antwort und dann gibt es noch die Kernelobjekte, die eben in jedem Prozess eingeblendet sind. Wie es bei vererbten Handles aussieht, weiß ich im Moment garnicht.
|
Re: Dateisperre freigeben
ja gut, dass würde auch sinn machen, dass teilweise handles von anderen prozessen eingeblendet werden. nur wie man in der all_file_handles.txt sieht, sind es immer pro prozess id 2 handles, einer auf das ausführungsverzeichnis und einer auf meine geöffnete datei. also ca. 20 verschiedene prozess-ids mit immer den genau gleichen 2 handles.
wie muss ich jetzt vorgehen, wenn ich die dateisperre lösen will? Muss ich da einfach das handle schließen? ich bin schon soweit, dass ich da zu schließende handle an den treiber übergeben kann. |
Re: Dateisperre freigeben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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