Anfänger sucht dringent hilfe

Ja ist ja ok @ brainbyte

Habe das schon gelöst habe denn visual basic 6 installiert und dann mit dem 2005 die programmierten Tools umgewandelt.
Das geht einwandfrei.

Nur noch eins kann mir einer ein Code für das visual Basic geben wie ich Programme beenden kann?
Zumbeispiel das mirc was ich im ersten Code starte das möchte ich beenden.
 
Code:
Option Explicit

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 GetExitCodeProcess Lib "kernel32" _
        (ByVal hProcess As Long, lpExitCode As Long) As Long

Const STILL_ACTIVE = &H103
Const PROCESS_ALL_ACCESS = &H1F0FFF

Dim TaskID&

Private Function IsActive() As Boolean
  Dim Handle&, ExitCode&
  
    Handle = OpenProcess(PROCESS_ALL_ACCESS, False, TaskID)
    Call GetExitCodeProcess(Handle, ExitCode)
    Call CloseHandle(Handle)
    
    IsActive = IIf(ExitCode = STILL_ACTIVE, True, False)
End Function

Private Sub Command1_Click()
  Shell "notepad.exe", vbNormalFocus
  TaskID = "notepad.exe"
  Timer1.Interval = 500
  Timer1.Enabled = True
  Command1.Enabled = False
End Sub

Private Sub Timer1_Timer()
  
    If IsActive Then
      lblMIRC.Caption = "NotePad Läuft noch"
    Else
      lblMIRC.Caption = "NotePad Läuft nicht mehr"
      Timer1.Enabled = False
      Command1.Enabled = True
    End If
End Sub

Was ist hier falsch TaskID = "notepad.exe" damit möchte ich festellen ob der task leuft oder nicht.
Ich brauche das so, weil ich eine verknüpfung starten möchte und daher muss ich die exe nochmal angeben das er schaut ob die da ist.
Und mir das dann anzeigt.
 
Für Task id wird eine Zahl benötigt wie in post #4 bereits gesagt musst du dir die Taskid auch über eine Api holen um dann zu schauen ob der task noch läuft.

Ich glaube die heist irgendwie *gettaskbyname oder so

Grüsse bb
 
Code:
Option Explicit

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 GetExitCodeProcess Lib "kernel32" _
        (ByVal hProcess As Long, lpExitCode As Long) As Long

Const STILL_ACTIVE = &H103
Const PROCESS_ALL_ACCESS = &H1F0FFF

Dim TaskID&

Private Function IsActive() As Boolean
  Dim Handle&, ExitCode&
  
    Handle = OpenProcess(PROCESS_ALL_ACCESS, False, TaskID)
    Call GetExitCodeProcess(Handle, ExitCode)
    Call CloseHandle(Handle)
    
    IsActive = IIf(ExitCode = STILL_ACTIVE, True, False)
End Function

Private Sub Command1_Click()
  TaskID = Shell("notepad.exe", vbNormalFocus)
  Timer1.Interval = 500
  Timer1.Enabled = True
  Command1.Enabled = False
End Sub

Private Sub Timer1_Timer()
  
    If IsActive Then
      lblMIRC.Caption = "NotePad Läuft noch"
    Else
      lblMIRC.Caption = "NotePad Läuft nicht mehr"
      Timer1.Enabled = False
      Command1.Enabled = True
    End If
End Sub

Du verstehst mich nicht, so wie das jetzt da steht geht es, er zeigt mir denn status an das das programm leuft.
Ich möchte aber eine verknüpfung starten, und da zeigt er es mir nicht an deswegen habe ich es geteilt in dem oben stehen post.
Und da haut was mit der variable nicht hin: TaskID = "notepad.exe"
 
Also ich werde daraus nicht schlau ^^,
kann mir jemand ein Beispiel Tool bauen, wo zum Beispiel von notepad die taskid ausgelesen wird?
 
Zurück