Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Read a file that is opened by another process

by BrowserUk (Patriarch)
on Nov 20, 2010 at 14:32 UTC ( [id://872670]=note: print w/replies, xml ) Need Help??


in reply to Read a file that is opened by another process

If the (windows) share mode was really none, (as in CreateFile/ShareMode == 0), then notepad would not be able to open the file.

So, first you need to explain what you mean by "FileShare mode None". Ie. how is that file opened and with what parameters?

Or, what makes you think it has been opened "exclusive" if notepad can also open it?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: Read a file that is opened by another process
by ady (Deacon) on Nov 20, 2010 at 15:16 UTC
    Sorry, you're right BrowserUk, --
    Let me rephrase the question:

    * assume a file with exclusive access by a process (ex .NET C#: FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);

    * it seems I can't use any Windows API to read that file, - not from managed C# at least, so i tried from Perl, - but I can't find a way here either.

    * and no, Notepad will not open this file.

    But I assume there must be a way, since some backup applications are able to copy files, that are currently opened by other processes ?

      With the appropriate privileges and access to the right APIs this is possible.

      But gaining access to those APIs is far harder from Perl than C or C#, and way beyond the scope of this forum.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        I'll gladly help someone with an XS or Win32::API solution once they've id'ed the proper interface.
        OK, I feared that might be the case.
        I'll see how far I can get with the Windows unmanaged API from .NET (P/Invoke to C DLLs).

        Thanks anyway :)
        allan

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://872670]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2024-03-28 22:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found