juu milläköhän apilla voisi "tappaa" prosesseja eli käskeä ne äärimmäisesti sulkeutumaan?
Formille textboxi (Text1) ja buttoni (Command1). Tappaa prosesseja titlen perusteella.
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId 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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Const PROCESS_TERMINATE = &H1
Private Sub Command1_Click()
Dim hwnd As Long, pid As Long, ph As Long
' etsitään hwnd, huomaa vbNullString (0 ei toimi tässä)
hwnd = FindWindow(vbNullString, Text1.Text)
' hankitaan pid
GetWindowThreadProcessId hwnd, pid
' prosessin kahva
ph = OpenProcess(PROCESS_TERMINATE, 0, pid)
' terminoidaan prosessi
hwnd = TerminateProcess(ph, 0)
End SubKiitos! Tästä on suuri hyöty...
Toi kai vaa lopettaa sovelluksia eikä prosesseja (kokeilin XP:ssä) mut iha kiva muute
Sovellus on prosessi.
Ei liene kovin vaikeaa muokata tuota tappamaan minkä tahansa prosessin, edellyttäen tietenkin että tietää prosessin kahvan.
tarkotan, että kun XP:n tehtävienhallinnassa on "Sovellukset" ja "Prosessit"-kohdat, niin se lopettaa vaan "Sovellukset"-kohdasta eikä prossuista
Mjooh siis tosiaan kuten sanoin kyllä tuo tietääkseni lopettaa minkä tahansa prosessin kunhan vain kahva on tiedossa. FindWindow+GetWindowThreadProcessId yhdistelmällä ei tietenkään löydy prosessien kahvoja
Oliskohan jotenki mahollista sulkea ihan tiedostoja joiden nimet on jotku tietyt vaik esimerkiksi moi.exeet?
Aihe on jo aika vanha, joten et voi enää vastata siihen.