| |
VB.NET - Ein- und UmsteigerProzessbeschreibung - 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
| |
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. | |
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
| |
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 | |
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
| |
| 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 |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|