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
|
|