Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Prozesse auf LAN-PC auflisten & beenden (https://www.delphipraxis.net/57592-prozesse-auf-lan-pc-auflisten-beenden.html)

Luckie 14. Dez 2005 16:21

Re: Prozesse auf LAN-PC auflisten & beenden
 
API Zeugs habe ich meist im Kopf. WMI nicht so. Aber meist habe ich es als Code-Schnippsel schon mal irgendwo geschrieben und muss es nicht jedes mal neu schreiben. Programmierer sind eben faul. ;)

HellCode 17. Feb 2006 18:24

Re: Prozesse auf LAN-PC auflisten & beenden
 
Der Code funktioniert gut... Bis auf das das "Prozess beenden" nicht implementiert ist. Absicht?

Die Muhkuh 17. Feb 2006 18:36

Re: Prozesse auf LAN-PC auflisten & beenden
 
Zitat:

Zitat von HellCode
Der Code funktioniert gut... Bis auf das das "Prozess beenden" nicht implementiert ist. Absicht?

Weil man vllt. noch selbst nachdenken soll und nicht alles vorgekaut bekommt? :roll:

HellCode 17. Feb 2006 18:48

Re: Prozesse auf LAN-PC auflisten & beenden
 
Verstehe!

:wiejetzt:

Gib mal nTip! :-D

fLaSh11 18. Feb 2006 09:30

Re: Prozesse auf LAN-PC auflisten & beenden
 
Als VBS wäre auch dieser Quellcode denkbar:
Code:
remote = InputBox("Name des Remote-PCs:","Remote-Prozesse")
If remote = "" Then WScript.Quit

wmitxt = "winmgmts:{impersonationLevel=impersonate}"
Set wmi = GetObject(wmitxt & "!\\" & remote)
Set prozess1 = wmi.ExecQuery("SELECT * FROM " &_
 "Win32_Process")
Set prozess2 = wmi.ExecQuery("SELECT * FROM " &_
 "Win32_PerfFormattedData_PerfProc_Process")

Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "about:blank"
While ie.Busy
Wend
Set dok = ie.Document
dok.Open

dok.Writeln "<Title>Prozesse auf " & remote & "</Title><u>" &_
 "[B]Prozesse auf " & remote & "[/b]</u>

" &_
 "<table border='1' cellpadding='0' cellspacing='0' " &_
 "width='99%'><tr><td></td><td>[B]Name</td><td>[B]PID</td>" &_
 "<td>[B]CPU</td><td>[B]Speicher</td></tr>"

zaehler = 1
For Each proz1 In prozess1
  dok.Writeln "<tr><td>" & zaehler & "</td><td>" &_
   proz1.Name & "</td><td>" & proz1.ProcessID & "</td><td>" &_
   cpulast(proz1.ProcessID) & "</td><td align='right'>" &_
   Fix(proz1.WorkingSetSize/1000) & " K</td></tr>"
  zaehler = zaehler + 1
Next

dok.Close
ie.Visible = True
Set shell = WScript.CreateObject("WScript.Shell")
shell.AppActivate("Prozesse auf " & remote)
shell.SendKeys "% x"


Function cpulast(strprozid)
  cpulast = "???"
  For Each proz2 In prozess2
    If proz2.IDProcess = strprozid Then
      cpulast = proz2.PercentProcessorTime
    End If
  Next
End Function
Funktioniert einwandfrei. Kein Virus o.ä.

Als erste Zeile wäre auch dies denkbar:
Code:
remote = InputBox("Name des Remote-PCs:","Remote-Prozesse","Name des meist genutzten PCs")

HellCode 18. Feb 2006 10:35

Re: Prozesse auf LAN-PC auflisten & beenden
 
Jetzt hättest du doch wenigstens in der VBS-Variante das Prozess-killen mitreinbringen könnte. Also meine Basic-Kenntnisse gehen genausoweit das ich sagen kann das es nicht untergebracht ist. Aber wäre das nicht pädagogisch sinnvoll gewesen? :-D

fLaSh11 18. Feb 2006 11:41

Re: Prozesse auf LAN-PC auflisten & beenden
 
Ja, das hab ich auch versucht. Mir ist es zwar gelungen, :coder:
aber der angegebene Prozess wurde nie so richtig beendet... :gruebel:

bei Bedarf kann ich den Code aber trotzdem posten...

HellCode 18. Feb 2006 18:29

Re: Prozesse auf LAN-PC auflisten & beenden
 
mach mal.. vielleicht hilfts mir ja irgendwie

ManuMF 24. Mär 2006 09:16

Re: Prozesse auf LAN-PC auflisten & beenden
 
Hallo,

:oops: lange nicht mehr ins Thema geschaut...

Ich habe mich jetzt mal ein bisschen in den Code eingearbeitet, und komme auch einigermaßen ;-) damit klar. Aber was genau muss ich tun, um zu Beenden?
Das dürfte so wie im Code ablaufen (erst Anmeldung etc.), aber statt der While-Schleife, die die Prozesse listet, bräuchte ich einen Befehl, der einen Prozess dann beendet.

Danke,
ManuMF

ManuMF 26. Mär 2006 14:27

Re: Prozesse auf LAN-PC auflisten & beenden
 
Hallo,

niemand eine Idee?

Habe inzwischen noch mal in PView geschaut, aber nur die Methode zum lokalen Beenden gefunden. In der WMI-Unit habe ich auch keine Möglichkeit zum Beenden gefunden. :gruebel:

Gruß,
ManuMF


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz