Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Prozess beenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
05.03.2005, 20:36 Uhr
help_man



Hallo!

Könnt ihr mir bitte einen Quelltext für "Prozess beenden" schicken oder machen??
Ich hab nämlich keine peilung wie das bei VB6 gehen soll
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.03.2005, 13:16 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Einen Prozess gezielt beenden - wenn die TaskId bekannt ist - geht so:


Visual Basic:
Private Declare Function CloseHandle Lib "kernel32" (ByVal _
   hObject As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
   dwDesiredAccess As Long, ByVal bInheritHandle As _
   Long, ByVal dwProcessId As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal _
   hProcess As Long, ByVal uExitCode As Long) As Long

Const PROCESS_TERMINATE = &H1

Public lTaskID as Long

Private Sub cmdTerminate_Click()
   Dim hTask As Long
   Dim lResult As Long
   hTask = OpenProcess(PROCESS_TERMINATE, 0&, lTaskID)
   lResult = TerminateProcess(hTask, 1&)
   lResult = CloseHandle(hTask)
End Sub


--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.03.2005, 13:21 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Und weil ich heute noch so nett bin... Zeig ich dir auch mal, wie man alle laufenden Programm und ihre Task-ID ermitteln kann.

Alles, was Sie zum Ausprobieren benötigen, ist eine Form, ein ListView-Control, ein CommandButton und ein Modul.

Beim Klicken auf den CommandButton wird die Windows Fensterliste durchlaufen und alle gefundenen Programme im ListView sauber angezeigt, natürlich mit Fenstertitel, TaskID und Fenster-Handle.


Visual Basic:
' Fensterliste ermitteln und anzeigen
Private Sub Command1_Click()
  GetWindowList ListView
End Sub



Sollen alle Fenster ermittelt werden, also auch diejenigen, die nicht direkt sichtbar sind, einfach im GetWindowList-Aufruf als zweiten Parameter False angeben.

Folgenden Code bitte in das Modul einfügen:


Visual Basic:
Option
D = lTemp
End Function

Private Function GetWindowTitle(ByVal hWnd As Long) _
  As String
  
  ' Ermittelt den Namen eines Windows anhand des
  ' Window Handle
  
  Dim lResult As Long
  Dim sTemp As String
  
  lResult = GetWindowTextLength(hWnd) + 1
  sTemp = Space(lResult)
  lResult = GetWindowText(hWnd, sTemp, lResult)
  GetWindowTitle = Left(sTemp, Len(sTemp) - 1)
End Function



Und wenn Sie nun lediglich prüfen wollen, ob z.B. WinWord gestartet ist, können Sie dies folgendermassen tun:


Visual Basic:
Public Function WordIsRunning(oForm As Form) As Boolean
  ' Gibt True zurück, wenn Word geladen ist
  Dim hWnd As Long
  Dim sTitle As String
  Dim lStyle As Long
  
  WordIsRunning = False ' Ich alter Pessimist ;-)

  ' Erstes WindowHandle holen
  hWnd = GetWindow(oForm.hWnd, GW_HWNDFIRST)
  
  Do
    ' Handle auswerten
    lStyle = GetWindowLong(hWnd, GWL_STYLE)
    lStyle = lStyle And (WS_VISIBLE Or WS_BORDER)
    
    If (lStyle = (WS_VISIBLE Or WS_BORDER)) = True Then
      ' Titelzeile ermitteln und prüfen, ob
      ' das "Microsoft Word" darin enthalten ist
      sTitle = GetWindowTitle(hWnd)
      If InStr(1, sTitle, "Microsoft Word", _
        vbTextCompare) > 0 Then
        WordIsRunning = True
        Exit Do
      End If
    End If
    ' Nächses Handle
    hWnd = GetWindow(hWnd, GW_HWNDNEXT)
  Loop Until hWnd = 0
End Function




--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.03.2005, 21:38 Uhr
help_man



Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.03.2005, 22:15 Uhr
help_man



Noch eine Frage, wo gibts das ListView-Control ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.03.2005, 15:31 Uhr
Spacelord
Hoffnungsloser Fall


TerminateProcess ist Schrott....

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.03.2005, 01:56 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


ListView Control gehört zu Windows Ist also dabei.. (Microsoft Windows Common Controls 6.0)

@Spacelord: TerminateProcess ist ein Befehl um eine laufende Anwendung (Prozess) zu beenden.
Was ist dadran bitte 'Schrott' ?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.04.2005, 16:56 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von Audron-AT-www:
@Spacelord: TerminateProcess ist ein Befehl um eine laufende Anwendung (Prozess) zu beenden.
Was ist dadran bitte 'Schrott' ?


Oh bitte.....
TerminateProcess informiert keine Dll´s usw.....
Absoluter Hardcore,kannst du überall nachlesen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.11.2005, 15:55 Uhr
~LoKi
Gast


@ Audron-AT-www

Und hast deinen code schön geklaut von vbarchiv.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.11.2005, 16:16 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Ja klar, ich bin ein richtiger CodeDieb
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: