vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Prozessbeschreibung - Zugriff verweigert 
Autor: qbic
Datum: 16.01.10 12:58

Hi Leute, da ich - wie manche schon gemerkt haben - einige Wissenslücken habe was .Net angeht, versuche mich nun an einem eigenen Projekt.

Dabei stehe ich vor eine Rechtefrage, zu der ich nirgens informationen finde.
Ich möchte alle laufenden Prozesse in eine Listview eintragen lass, samt ID und beschreibung.
DIe AUflistung klappt, die Eintragung der ID ebenso, bei der Beschreibung gibt es aber ein Problem, das seine Ursache scheinbar in den Benutzerechten hat.

Private Sub refreshList()
        Dim process_Name As Process
        Dim listindex As Integer = 0
        Dim fileinfo As String = String.Empty
        list_Process.Items.Clear()
        For Each process_Name In Process.GetProcesses
            With list_Process.Items.Add(process_Name.ProcessName.ToString & _
              ".exe")
                .SubItems.Add(process_Name.Id.ToString)
                Try
                    If IO.File.Exists( _
                      process_Name.MainModule.FileName.ToString) Then
                        fileinfo = FileVersionInfo.GetVersionInfo( _
                        process_Name.MainModule.FileName.ToString).FileDescript_
                        ion.ToString
                    Else
                        fileinfo = process_Name.MainModule.FileName.ToString
                    End If
                    .SubItems.Add(fileinfo)
                Catch
                    .SubItems.Add("")
                End Try
            End With
        Next
    End Sub
In der Zeile
fileinfo = FileVersionInfo.GetVersionInfo( _
  process_Name.MainModule.FileName.ToString).FileDescription.ToString
wird aber eine Exception geworfen (sofern ich keinen Try/Catch block benutze), die mich darauf hinweist, dass der Zugriff verweigert wird.

Genau gesagt: "Laufzeitausnahme: System.ComponentModel.Win32Exception - Zugriff verweigert"

Dabei bin ich Lokal als Administrator angemeldet. Selbst wenn ich das Programm kompiliere und manuell über "Rechtsklick->Als Administrator ausführen" starte, bekomme ich so gut wie keine Beschreibung geliefert.
Verursacht wird die Exception genau genommen durch process_Name.MainModule.FileName.ToString.

Habt ihr eine Idee woher das rührt? Mehr als Admin sein kann ich doch nicht!?

Steffen

__________________________________________________________
www.steffen-blogging.de
Ich bin Synoroot und das ist gut so! =D

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prozessbeschreibung - Zugriff verweigert 
Autor: Manfred X
Datum: 16.01.10 13:27

Hallo qbic!

Ich habe Deinen Code als Admin ausprobiert - unter Windows XP SP3!

Die Prozesse werden ordentlich aufgelistet.
Nur die Systemprozesse und einige System-Dienste verweigern den Zugriff.

Einstellung des Listview-Control: ListView1.View = View.List


Achso: Du musst erst noch die Spalten im Listview erstellen,
damit die Subitems angezeigt werden bei ListView1.View = View.Details

list_process.Columns.Add("A")
list_process.Columns.Add("B")
list_process.Columns.Add("C")

Beitrag wurde zuletzt am 16.01.10 um 13:49:26 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prozessbeschreibung - Zugriff verweigert 
Autor: qbic
Datum: 16.01.10 20:43

DIe Spalten sind schon drin, ich bekomme auch manche Beschreibungen angezeigt.
Aber das sind extrem wenige. Von 37 laufenden Prozessen bekomme ich 8 mit Beschreibung.
Alle anderen liefern durch den Try/Catch-Block einen leeren String zurück, da ich keine Rechte habe, die Informationen aus process_Name.MainModule.FileName abzurufen.

Hat sonst noch jemand eine Idee?

__________________________________________________________
www.steffen-blogging.de
Ich bin Synoroot und das ist gut so! =D

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prozessbeschreibung - Zugriff verweigert 
Autor: Manfred X
Datum: 16.01.10 21:00

Hallo!

Welches Betriebssystem?

Du sagst auch nichts darüber, welche Prozesse das sind, die nicht
angezeigt werden.

Ich vermute, es handelt sich nicht um fehlende Rechte, sondern
darum, dass die Programm-Files von der laufenden Anwendung für den
Zugriff gesperrt worden sind.

GetVersionInfo will nämlich auf das Exe-File zugreifen.

Welche Information benötigst Du denn?

z.B. process_name.ProcessName liefert den Namen.

process_name.MainModule.FileVersionInfo.FileDescription die Beschreibung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prozessbeschreibung - Zugriff verweigert 
Autor: qbic
Datum: 16.01.10 21:12

SO wie ich das sehe, greift FileVersionInfo.FileDescription auf die gleichen Eigenschaften zu, denn der Text bleibt überall der gleiche.
Was ich angezeigt haben will, ist in etwas so wie es der TaskManager unter WIndows 7 macht. Dort bekommt man zu jedem Prozess eine Beschreibung geliefert.

Großteils sind es Systemprozesse, die nicht angezeigt werden, das ist richtig. Die anderen Prozesse wie z.B. Dock64 kommen von meiner ObjectDock. Inwiefern diese gesperrt sein sollen weiß ich grad nicht, muss aber damit zusammenhängen, sonst würde ich die Informationen ja bekommen.

am besten ich blende diese Prozesse einfach aus, da es sich scheinbar um Systemeigene Sachen handelt, die so oder so wohl besser nicht beendet werden sollten.

Falls irgendwie trotzdem noch eine Idee haben sollte, ich bin für alles offen

__________________________________________________________
www.steffen-blogging.de
Ich bin Synoroot und das ist gut so! =D

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel