#1 30. August 2009 Virsual Basic 2008 - Protzesse beenden! Hay, ich bin n totaler anfänger bei virsual basic, doch übe kräftig! Jez kam mir ne idee für ein programm! Undzwar ein Programm wo ich nen button drücke und es Prozesse schließt, die ich angebe! Hab soweit alles fertig, nur bei einigen prozessen bekomme ich nen fehler: Benutze folgenden Code For Each Process In System.Diagnostics.Process.GetProcessesByName("TUProgSt") Process.Kill() Next Allerdings kommt immer die Fehlermeldung mit der meldung: ine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten. Der Fehler kommt allerdings nur bei einigen Dateien, wo der zugriff verweigert wird, wie umgeh ich das? + Multi-Zitat Zitieren
#2 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Entweder dein Prog als Administrator starten oder per Try den Fehler abfangen und ggf weiterverarbeiten. + Multi-Zitat Zitieren
#3 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Starte es die ganze Zeit als admin, und von "Try" weiß ich cnithmal was es ist + Multi-Zitat Zitieren
#4 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Das sind das evtl. Systemprozesse. btw: Google -> VB.net Try -> 2. erg: Visual Basic .NET programming for Beginners - Try ... Catch + Multi-Zitat Zitieren
#5 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Probier einfach mal Code: For Each Process In System.Diagnostics.Process.GetProcessesByName("TUProgSt") try Process.Kill() catch ex as exception MsgBox(ex.Message) Finally Next End try So sollts funktionieren des ex.Message, steht für deine Fehlermeldung wo auftritt, der try chatch block verhindert, dass dein Programm "abstürtzt", dein Finally wird immer ausgeführt auch wenn ein fehlerfall vorliegt , so solltest du alle prozesse killen können, die möglich sind mfg Edit: ist ungetestet, funktioniert das nicht, pack das finally einfach weg und mach unter dem end try das : next wieder + Multi-Zitat Zitieren
#6 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Habs versaucht... For Each Process In System.Diagnostics.Process.GetProcessesByName("TUProgSt") try Process.Kill() catch ex as exception MsgBox(ex.Message) Finally Next End try geht ohne fehlermeldung.... Allerdings bleibt der Prozess an -.- + Multi-Zitat Zitieren
#7 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Bist du dir sicher, dass du den Prozess beenden darfst? Vllt is es ein Systemprozess oder einer, der nach Beendung direkt wieder neu startet. Das könnte ggf eine Einstellung eines Dienstes sein. D.h. wenn du den Prozess beendest, dann wird er automatisch wieder gestartet. (sc.exe config) greez + Multi-Zitat Zitieren
#8 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Ja bin ich... gehört zu tune up und manuell kann ich ihn ebenfalls problemlos schließen! Nur die Automatiesierung will bei dem nicht klappen! + Multi-Zitat Zitieren
#9 30. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Versuch doch mal den Prozess so oft zu beenden, bis er wirklich geschlossen ist. Code: For Each proc In System.Diagnostics.Process.GetProcessesByName("TUProgSt") try Do proc.Kill() Loop Until proc.HasExited catch ex as exception MsgBox(ex.Message) Finally Next End try Kann nicht versprechen, dass das wirklich funzt greez + Multi-Zitat Zitieren
#10 31. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! Leider immernoch zugriff verweigert... + Multi-Zitat Zitieren
#11 31. August 2009 AW: Virsual Basic 2008 - Protzesse beenden! benutz mal den normalen nicht .net weg über die apis ala OPENPROCESS mit PROCESS_TERMINATE. vorher brauchste aber SE_DEBUG privileges. das wird wohl auch der grund sein, warum es in .net scheitert. + Multi-Zitat Zitieren
#12 1. September 2009 AW: Virsual Basic 2008 - Protzesse beenden! Benutze kein .net... Ähm könntest du mir mal zeigen wie es dann aussehen würde?! + Multi-Zitat Zitieren
#13 1. September 2009 AW: Virsual Basic 2008 - Protzesse beenden! was benutzt du hier bitte sonst? klar ist das .net ... is zwar bcx, aber ist lesbar und enthält die teile die du brauchst: (man beachte ProcessSetPrivilege) http://www.bcxgurus.com/bcxusers/SmOkeN/BCX.Process.Snippets/Processes.bas nehm trotzdem mal an dass dir das immernoch nicht weiterhilft ... + Multi-Zitat Zitieren