TerminateApplication                              (XAPI2000)

Deklaration VB 6.0
TerminateApplication Lib (ByVal ProcessID As Long, ByVal TimeOut As Long) As Boolean

Deklaration VB.NET
TerminateApplication Lib (ByVal ProcessID As Integer, ByVal TimeOut As Integer) As Boolean

Beskrivning
Stänger en applikation med angivet process-ID. Parametern ProcessID specificerar process-ID för den applikation som ska stängas och parametern TimeOut specificerar tiden i millisekunder som funktionen ska vänta på att en applikation verkligen har stängts innan den återvänder. Ju större/tyngre applikation desto större värde på TimeOut bör användas. 100-1000 millisekunder är rimliga värden på medelstora applikationer. Process-ID för en applikation kan erhållas med hjälp av funktionen RunApplicationEx.

Det är mycket viktigt att parametern ProcessID alltid har giltiga invärden, annars kan systemet bli ostabilt och i vissa fall även låsa sig. Innan anrop av TerminateApplication bör värdet på ProcessID alltid valideras att det är korrekt. Tex så får värdet på parametern ProcessID aldrig vara 0.

Begränsningar i Windows Vista / Windows 7
Ett program som körs med standardrättigheter kan aldrig stänga ett program som körs med administratörsrättigheter. Det kan bara ett program som också har administratörsrättigheter göra. Ett program som körs med standardrättigheter kan bara stänga program som också körs med standardrättigheter (eller lägre).

Returvärden
Funktionen returnerar True om alt gått bra eller False vid fel.
.

Se även
RunApplicationEx, IsApplicationActive

 
 
Exempel (VB 6.0)

Exemplet nedan startar Windows miniräknare (CALC.EXE) när användaren trycker på knappen CmdStart och stänger samma räknare när användaren trycker på knappen CmdTerminate. Applikationens process-Id lagras i den globala variabeln ProcessID.

Dim ProcessID As Long

' Starta ett program och lagra undan process-ID
Private Sub CmdStart_Click()
    If ProcessID = 0 Then RunApplicationEx GetWindowsDir() + "\Calc.exe", "", ProcessID
End Sub

' Stäng aktivt program
Private Sub CmdTerminate_Click()
    If ProcessID <> 0 Then TerminateApplication ProcessID, 100
    ProcessID = 0
End Sub
  
    
  
SamLogic