Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 168
  • Last Modified:

File being used by the system in vb 6

is there a way that i can know if a file is being used by the systems, in this case i want to know if a printer is using a file
0
cano63
Asked:
cano63
  • 4
  • 4
1 Solution
 
JohnBPriceCommented:

If you get FileMon from Sysinternals.com, and then print, it will show you every file that is touched by any process.  You can filter it by filename or process.
0
 
cano63Author Commented:
? can you give an example is in vb 6.0
0
 
cano63Author Commented:
ok but i need to make it with code  in Vb 6.0
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
JohnBPriceCommented:
OK, I don't understand what you are trying to do then.  What file are you interested in?  When you said "if a file is being used by the systems" I thought you meant a system file that perhaps you wanted to delete or at least identify if it was required.
0
 
cano63Author Commented:
i want to know by code if a file is being used by the system. i have to delete a file after he's been printed, but i need to know if the systems have cotrol over it or if it is free to delete it
0
 
JohnBPriceCommented:
You could simply try to delete it and see if you get an error.  
You could try to create it exclusively and see if you get an error, see http://www.eggheadcafe.com/conversation.aspx?messageid=30057905&threadid=30031602
(code below)
You can get info about files, but it is a lot of work, see
http://msdn.microsoft.com/en-us/library/aa364949(VS.85).aspx

'-----------------------------------------------------------
' FUNCTION: FileInUse
' Determines whether the specified file is currently in use
'
' IN: [strPathName] - file to check for
'
' Returns: True if file exists and is in use, False otherwise
'-----------------------------------------------------------
'
Public Function FileInUse(ByVal strPathName As String) As Boolean
    Dim hFile As Long
    
    On Error Resume Next
    '
    ' If the string is quoted, remove the quotes.
    '
    strPathName = strUnQuoteString(strPathName)
    '
    'Remove any trailing directory separator character
    '
    If Right$(strPathName, 1) = gstrSEP_DIR Then
        strPathName = Left$(strPathName, Len(strPathName) - 1)
    End If
 
    hFile = CreateFile(strPathName, GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_WRITE_THROUGH, 0)
    
    If hFile = INVALID_HANDLE_VALUE Then
        FileInUse = Err.LastDllError = ERROR_SHARING_VIOLATION
    Else
        CloseHandle hFile
    End If
    Err.Clear
End Function

Open in new window

0
 
cano63Author Commented:
Does this code is for vb6.0,  is not working, do i have to call any special lybrary.
0
 
JohnBPriceCommented:
>>do i have to call any special lybrary

Yes.  If you follow the link I posted, it is an article about how to use the  FileInUse function.  In that article, you would see that the code is from the vb setup project installed with visual studio 6.0.  Look for setup1.vbp in C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1 and you can copy what code you need.
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now