Avatar billede fixxxer Nybegynder
23. februar 2004 - 18:56 Der er 12 kommentarer og
1 løsning

tag backup af fil ved sletning

Jeg leder efter en mulighed for at tage backup af en fil umeldbart før den bliver slettet (ikke til-papir-kurv-sletning) i windows 2000.

Jeg har undersøgt lidt og fandt på experts-exchange.com frem til følgende:

Yep, either write a driver. Or do system wide API hooking. GloobyFriar is right there.

I'm not sure how the XP's explorer deletes files. I would start by hooking DeleteFileA/W and SHFileOperation. But it seems you've already tried that. The next try would be to hook NtCreateFile/NtOpenFile + NtSetFileInformation. This is the more low level way of deleting files. With NtSetFileInformation you can do all sorts of things, including renaming and deleting files.

Btw, are you talking about deleting files or about moving files to the recycle bin? What I've talked about was really deleting files. Moving files to the recycle bin is a different beast again...

(hele tråden kan læses på http://oldlook.experts-exchange.com:8080/Programming/Programming_Languages/Delphi/Q_20801905.html - kræver dog at man er logget ind)

Mit problem er i denne omgang at jeg ikke lige ved hvordan jeg skal gribe det ellers gode råd til værks. Er der nogen her der ved det (borrisholt, hcs og alle jer der bare ka' det der, hjææælp :) )
Avatar billede stone Forsker
23. februar 2004 - 19:27 #1
procedure TForm1.Button2Click(Sender: TObject);
var
FOS :TSHFileOpStruct;
begin
with FOS do
begin
Wnd  := 0;
wFunc := FO_COPY;
pFrom := 'c:\temp\im.bmp*'#0; //fra
pTo  := 'c:\'#0;            //til
fFlags:= FOF_NOCONFIRMATION;
end;
SHFileOperation(FOS);
showmessagepos('dataerne er kopieret til backup',400,400);
Deletefile('c:\temp\im.bmp');
end;
Avatar billede stone Forsker
23. februar 2004 - 19:29 #2
hov....

uses shellapi
Avatar billede fixxxer Nybegynder
23. februar 2004 - 19:45 #3
Jeg udtrykker mig vist lidt uklart. Jeg bestemmer ikke hvilken fil der bliver slettet, det er det programmet skal finde ud af for mig :)
Avatar billede Slettet bruger
23. februar 2004 - 20:09 #4
Prøv at kig i copyhook eksemplet, som følger med Delphi:
Delphi\Demos\ActiveX\ShellExt\copyhook.dpr

Mener den fanger filer som bliver slettet :)
Avatar billede fixxxer Nybegynder
24. februar 2004 - 09:32 #5
hejhej >> spørgsmålet er så om den fanger det før eller efter filen er blevet slettet, men jeg kikker på det når jeg er hjemme
Avatar billede Slettet bruger
24. februar 2004 - 14:13 #6
Er ret sikker på den fanger det før filen bliver slettet, for man kan annulere sletningen.
Avatar billede fixxxer Nybegynder
24. februar 2004 - 21:09 #7
nu har jeg installeret eksemplet fra delphi i windows, og jeg kan kun få den til at vise meddelsen vedr. sletning og omdøbningen når det gælder mapper, hva med filer??
Avatar billede Slettet bruger
24. februar 2004 - 21:48 #8
Hmm.. så meget havde jeg ikke testet den, troede endelig bare man ændrede Directory til *, men ser ud til den slet ikke kan bruges til at fange filer :( :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/icopyhook/icopyhook.asp
Avatar billede fixxxer Nybegynder
24. februar 2004 - 23:09 #9
nemlig fandt selv den side på msdn for bare 10 minutter siden :
Avatar billede fixxxer Nybegynder
25. februar 2004 - 18:07 #10
Jeg har leget lidt med en komponent fra www.madshi.com der hedder madCodeHook, hvor det faktisk er lykkedes mig at undgå at filer faktisk slettes. Det er en to delt proces med en DLL der håndtere hookingen og en program der aktivere den.

Nu roder jeg så med at få DLL til at sende en message til programmet der fortæller den filnavn, sådan at programmet kan bestemme hvad der skal ske, logge handlingen osv osv.

Så nu søger jeg sådan set en der kan hjælpe mig med at sende denne message med SendMessage. Bring it on :)
Avatar billede Slettet bruger
25. februar 2004 - 20:16 #11
Du kan bruge WM_COPYDATA til at sende strengen:
http://www.swissdelphicenter.ch/torry/showcode.php?id=810 :)

Tror selv jeg vil til at lege med de komponenter, de ser meget interesante ud :o)
Avatar billede fixxxer Nybegynder
25. februar 2004 - 20:21 #12
hejhej >> problemet er løst, der var en allerede indbygget funktion til det som jeg ikke havde konfigureret ordenligt... og ja de komponenter er rigtige interessante :P

lukker spørgsmålet
Avatar billede Slettet bruger
25. februar 2004 - 20:25 #13
Okay, mange tak for komponenterne :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester