none
Feststellen welche Programme auf eine Datei zugreifen RRS feed

  • Frage

  • Hallo

    Ich möchte eine Date bearbeiten und darfür muss ich die Prozesse die auf die Datei zugreifen erkennen und beenden.Ich habe aber überhaupt keinen Plan wie ich

    die Prozesse erkenne die auf die Datei X zugreifen.Hat jemand eine idee?

     


    MFG M. D.
    Samstag, 12. März 2011 21:20

Antworten

Alle Antworten

  • Hi,

    Ich möchte eine Date bearbeiten und darfür muss ich die Prozesse die auf die Datei zugreifen erkennen und beenden.Ich habe aber überhaupt keinen Plan wie ich die Prozesse erkenne die auf die Datei X zugreifen.Hat jemand eine idee?

    vorab: Du solltest dich hüten, einfach irgendwelche Prozesse wahllos abzuschießen. Das kann zu unerwarteten (und unerfreulichen) Ergebnissen führen.

    Falls Du die Frage dennoch beantwortet wissen willst :)

      http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net

    Lies bitte auch die weiterführenden Links im ersten Posting dort.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 12. März 2011 21:50
    Moderator
  • Ich bekomme immer eine Win 32 Exepition Zugriff verweigert.

    Ps: Ich habe es in eine Windows Form kopiert.

     

    Imports
    
     System.Management
    Imports
    
     System.IO
    
    Module
    
     Module1
    Friend
    
     myProcessArray As
    
     New
    
     ArrayList
    Private
    
     myProcess As
    
     Process
    
    Sub
    
     Main()
    
     Dim
    
     strFile As
    
     String
    
     = "c:\windows\system32\msi.dll"
    
    
     Dim
    
     a As
    
     ArrayList = getFileProcesses(strFile)
     For
    
     Each
    
     p As
    
     Process In
    
     a
      Debug.Print(p.ProcessName)
     Next
    
    
    End
    
     Sub
    
    
    
    
    Private
    
     Function
    
     getFileProcesses(ByVal
    
     strFile As
    
     String
    
    ) As
    
     ArrayList
     myProcessArray.Clear()
     Dim
    
     processes As
    
     Process() = Process.GetProcesses
     Dim
    
     i As
    
     Integer
    
    
     For
    
     i = 0 To
    
     processes.GetUpperBound(0) - 1
      myProcess = processes(i)
      If
    
     Not
    
     myProcess.HasExited Then
    
               ''Hierr!!!!!!!!!
    
    
       Try
    
    
        Dim
    
     modules As
    
     ProcessModuleCollection = myProcess.Modules
        Dim
    
     j As
    
     Integer
    
    
        For
    
     j = 0 To
    
     modules.Count
    
     - 1
         If
    
     (modules.Item(j).FileName.ToLower.CompareTo(strFile.ToLower) = 0) Then
    
    
          myProcessArray.Add(myProcess)
          Exit
    
     For
    
    
         End
    
     If
    
    
        Next
    
     j
       Catch
    
     exception As
    
     Exception
        'MsgBox(("Error : " & exception.Message))
    
    
       End
    
     Try
    
    
      End
    
     If
    
    
     Next
    
     i
     Return
    
     myProcessArray
    End
    
     Function
    
    
    End
    
     Module
    
    
    
    

     


    MFG M. D.
    • Bearbeitet coder101001 Samstag, 12. März 2011 22:06 Ergänzung
    Samstag, 12. März 2011 22:04
  • Mit dem Code kann man leider nichts anfangen.

    Und die Exception ist korrekt, da Du nicht alles im System abfragen und vor allem nicht jeden Prozess abschießen kannst.

    Generell müsste deine Anwendung wahrscheinlich eh mind. mit Adminrechten laufen.

    Nachtrag: Das von dir verwendete Beispiel ist gerade das falsche. Lies mal bitte nochmal genau, was in dem Posting mit diesem Beispiel steht.

    Es macht keinen Sinn, einfach irgendwas irgendwoher zu kopieren ohne sich auch nur ein paar Gedanken darüber zu machen, was der Code eigentlich fabriziert.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 12. März 2011 22:14
    Moderator