AGB  ·  Datenschutz  ·  Impressum  







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

IsFileInUse Funktion erstellen

Ein Thema von BlueStarHH · begonnen am 15. Dez 2010 · letzter Beitrag vom 20. Dez 2010
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#21

AW: IsFileInUse Funktion erstellen

  Alt 15. Dez 2010, 20:07
PS: In irgendeinem älterem Thread zu diesem Thema schwirrt ein Programm von mir rum, welches den "billigen" Standardtest umgeht.

Also wo man einfach versucht die Datei exklusiv zu öffnen, welches ja praktsich nur dann geht, wenn noch kein anderer die Datei geöffnet hat (abgesehn von fehlenden Zugriffsrechten, wo man eh keinen Zugriff hat).
Mein programm hatte also Zugriff, obwohl CreateFile meinte, die Datei sei nicht in Benutzung
und das nur mit der StandardWinAPI, ohne irgendwelche Hooks oder andere Hacks.



Und dann gab es noch die unwahrscheinliche Variante, wo man direkt auf den Datenträger zugreift und von hinten rum in die Datei reinkommt, aber seit Vista sollten die meißten Programme eh keinenZugriff auf die Festplatten bekommen (fehlende Rechte) und dann isses ja nicht soooooo einfach die passenden Cluster/Sektoren zur gewünschten Datei rauszufinden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Dez 2010 um 20:12 Uhr)
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#22

AW: IsFileInUse Funktion erstellen

  Alt 19. Dez 2010, 23:50
Also, nach langem hin under her, habe ich nun eine Methode gefunden, die den Prozessnamen (d.h. Friendly Name) ermitteln kann. Ohne Treiber oder anderer schlimmer Sachen.
Wer Interesse hat, kann sich bei mir melden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
generic

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

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 00:39
Wer Interesse hat, kann sich bei mir melden.
Hau das doch bitte in die CodeLib der DP.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#24

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 05:12
Also, nach langem hin under her, habe ich nun eine Methode gefunden, die den Prozessnamen (d.h. Friendly Name) ermitteln kann.
Wenn man das Dateihandle vererben darf, ums in seinen Prozess zu kopieren und wenn die Datei mindestens 1 Byte groß ist (weil man's sonst nicht laden kann), dann gibt es einen Weg über MMF.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#25

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 05:31
Ursprünglich ging es darum, einem DAU mitzuteilen, das die Datei, die von einer Anwendung importiert werden soll, gerade von WORD oder EXCEL blockiert ist.

Also ich würde das ganz einfach mit CopyFile lösen: Arbeitskopie erstellen und die dann importieren. EXCEL und WORD erlauben das, denn sonst würde man wohl kaum geöffnete Dateien per Mail versenden können.

Natürlich bekommt der unbedarfte Anwender dann keine Nachricht, das die Datei blockiert ist. Muss er aber auch nicht, oder?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 09:58
hau das doch bitte in die codelib der dp.
ack
Sven Harazim
--
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#27

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 12:31
hau das doch bitte in die codelib der dp.
ack
Tut mir leid, das werde ich nicht tun. Das war viel zu viel Aufwand, um es nun einfach so zu verschenken. Aber wer es wirklich will, kann sich gerne melden. Da wird sich sicher was machen lassen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 12:34
Aber um das von Nico angesprochene Problem http://www.michael-puff.de/Artikel/FileUnlocker.shtml kommst du auch ohne Treiber nicht drumherum oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#29

AW: IsFileInUse Funktion erstellen

  Alt 20. Dez 2010, 13:41
Naja, am besten ist es immernoch, wenn man dem Benutzer zeigen kann, welcher Prozess denn dafür verantwortlich ist. D.h. vielleicht ist ja noch ein MS Word geöffnet irgendwo.
Meine Funktion nutzt neben IFileIsInUse noch andere Methoden ohne Treiber, um den benutzerfreundlichen Namen (z.B. Microsoft Word) und die ProzessID herauszufinden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 09:41 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