Alle aktiven Anwendungen beenden
-
Thursday, March 04, 2010 2:22 PMHallo!Ich möchte in meinem Programm eine Funktion einfügen, die alle aktiven Anwendungen beendet.Kann mir vielleicht jemand sagen, wie man das programmieren kann?Björn
All Replies
-
Thursday, March 04, 2010 4:28 PM
Hallo Björn,
möchtest du dabei auch den PC runterfahren?
'System.Diagnostic.Process.Start("shutdown.exe", "-s -f -t 00") 'Die Bedeutung der Parameters lautet: '"-s" bedeutet shutdown. Wenn du reboot möchtest dan kannst du "-s" mit "-r" austauschen. '"-f" bedeutet das die laufenden Applikationen gezwungen sind zu schliessen ohne Mahnung (forced in Englisch) '"-t 00" bedeutet die bestimmte Zeitabschaltung ist XX Sekunden. Selbstverständlich 00 ist ohne Countdown wie du es bemerkt hast. '"-r" vermutlich reeboot Process.Start("shutdown.exe", "-s -f -t 00")Neustart wäre dann:
Process.Start("shutdown.exe", "-r -f -t 00") 'neustartVieleicht helfen die Codes ja ein wenig.
LG Stefan
Liebe Grüße Stefan -
Thursday, March 04, 2010 4:29 PMOwner
Hallo Björn96,
Als Startpunkt der Diskussion kannst Du sehen im folgenden Beispiel wie erstmals alle Aktiven Anwendungen die in der Applications Registerkarte des Task Managers sind, in einer ListBox aufgelistet werden. Nachher durch doppelklick auf einer der Einträge in der Liste wird die Anwendung geschlossen. Kannst Du genauer sagen was Du meintest mit “Alle aktiven Anwendungen“?
Imports System.Diagnostics Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim arrProcesses As Process() = Process.GetProcesses() ListBox1.Items.Clear() For i As Integer = 0 To arrProcesses.Length - 1 Dim objProcess As Process = arrProcesses(i) If Not (objProcess.MainWindowHandle = IntPtr.Zero) Then ListBox1.Items.Add(New MyProcInfo(objProcess)) Next End Sub Private Class MyProcInfo Public ProcInfo As Process Private Sub New() End Sub Public Sub New(ByVal objProcInfo As Process) ProcInfo = objProcInfo End Sub Public Overrides Function ToString() As String Return DirectCast(IIf((ProcInfo.MainWindowHandle = IntPtr.Zero), "", "* "), String) & ProcInfo.ProcessName & " (" & ProcInfo.Id & ")" End Function End Class Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick If Not (ListBox1.SelectedItem Is Nothing) Then Dim objProcess As MyProcInfo = DirectCast(ListBox1.SelectedItem, MyProcInfo) If Not (objProcess.ProcInfo.MainWindowHandle = IntPtr.Zero) Then Dim hWnd As IntPtr = objProcess.ProcInfo.MainWindowHandle If IsIconic(hWnd) Then ShowWindowAsync(hWnd, SW_RESTORE) SetForegroundWindow(hWnd) objProcess.ProcInfo.CloseMainWindow() '//Prozess wird beendet '//objProcess.ProcInfo.Kill() End If End If End Sub End Class[Module1.vb]
Imports System.Runtime.InteropServices Module Module1 <DllImport("user32.dll")> _ Function SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean End Function <DllImport("user32.dll")> _ Function ShowWindowAsync(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean End Function <DllImport("user32.dll")> _ Function IsIconic(ByVal hWnd As IntPtr) As Boolean End Function Public Const SW_HIDE As Integer = 0 Public Const SW_SHOWNORMAL As Integer = 1 Public Const SW_SHOWMINIMIZED As Integer = 2 Public Const SW_SHOWMAXIMIZED As Integer = 3 Public Const SW_SHOWNOACTIVATE As Integer = 4 Public Const SW_RESTORE As Integer = 9 Public Const SW_SHOWDEFAULT As Integer = 10 End Module
Lies mal durch auch folgender Artikel: http://www.code-magazine.com/article.aspx?quickid=0403051&page=1Grüße,
Robert
- Proposed As Answer by Thorsten DörflerModerator Thursday, March 04, 2010 10:13 PM
- Marked As Answer by Robert BreitenhoferMicrosoft Contingent Staff, Moderator Wednesday, March 10, 2010 3:37 PM
-
Thursday, March 04, 2010 4:33 PMEs sollen alle Anwendungen, die im Taskmanager unter "Anwendungen" aufgelistet sind, geschlossen werden. Dabei soll der Computer nicht Herunterfahren.
-
Monday, March 08, 2010 4:15 PMOwner
Hallo Björn96,
Haben Dir die Antworten geholfen?
Grüße,
Robert -
Wednesday, March 10, 2010 3:37 PMOwner
Hallo Björn,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
Robert

