File System Watcher   otázka

VB.NET

Dobrý den, prosímvás, jak v filesystem watcheru zjistit, jakým programem byl soubor otevřen třeba když nainstalujete hru tak vám to detekuje nové soubory, ale já nechci vědět to co nainstalováno bylo, ale to co to nainstalovalo nebo vytvořilo...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud vím, tak tohoto nelze prostředky .NET Frameworku dosáhnout.

Teoreticky by to šlo udělat pomocí kombinace několika P/Invoke volání, která ale přesně neznám. Pokud by se Vám podařilo podchytit soubor při jeho vytváření (FileSystemWatcher, zda je stále v procesu vytváření byste zjistil tak, že byste jej zkusil otevřít pro čtení i zápis a odchytil výjimku), mohl byste následně teoreticky zjistit, která handle patří otevřenému souboru. S touto informací byste možná, nějak, opět teoreticky asi mohl manipulovat dále tak, že byste došel až k cestě programu, který soubor otevřel. Operační systém to umí, umí ukázat, která aplikace soubor blokuje, pokud se například snažíte smazat otevřený soubor, takže ta volání v systému jsou. Není to ale nic jednoduchého, bude to vyžadovat hodně úsilí nad rámec .NET Frameworku.

K ruce by Vám mohl být třeba tento článek:

http://www.codeproject.com/Articles/1897...

A celkově další dotazy na Google typu "open file handle".

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To samozřejmě pomocí FileSystemWatcheru nejde a pomocí Windows API (P/Invoke) je to na vás příliš komplikované.

nahlásit spamnahlásit spam -1 / 3 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback