Никак.
[snapback]3697[/snapback]
почему это никак?
\MSHelp\WIN32SDK.HLP :
Implementing a "Kill" Operation in Windows NT
PSS ID Number: Q90749
Authored 21-Oct-1992 Last modified 02-Mar-1995
The information in this article applies to:
- Microsoft Win32 Software Development Kit (SDK) for Windows NT
version 3.1
SUMMARY
The following sample demonstrates how to implement a "kill" operation, such
as a UNIX ps/kill, under Windows NT. Note that PView will give you the PID
you need.
The code sample makes use of the Win32 API TerminateProcess(). While
TerminateProcess() does clean up the objects owned by the process, it does
not notify any DLLs hooked to the process. Therefore, one can easily leave
the DLL in an unstable state.
In general, the Task List is a much cleaner method of killing processes.
MORE INFORMATION
The following sample shows how to "kill" a process, given its process ID
(PID).
Sample Code
-----------
#include <windows.h>
#include <stdio.h>
void ErrorOut(char errstring[30])
/*
Purpose: Print out an meaningful error code by means of
GetLastError and printf.
Inputs: errstring - the action that failed, passed by the
calling proc.
Returns: none
Calls: GetLastError
*/
{
DWORD Error;
Error= GetLastError();
printf("Error on %s = %d\n", errstring, Error);
}
void main(int argc, char *argv[])
{
HANDLE hProcess;
DWORD ProcId;
BOOL TermSucc;
if (argc == 2)
{
sscanf(agrv[1],"%x", &ProcId);
hProcess= OpenProcess(PROCESS_ALL_ACCESS, TRUE, ProcId);
if (hProcess == NULL)
ErrorOut("OpenProcess");
TermSucc= TerminateProcess(hProcess, 0);
if (TermSucc == FALSE)
ErrorOut("TerminateProcess");
else
printf("Process# %.0lx terminated successfully!\n", ProcId);
}
else
{
printf("\nKills an active Process\n");
printf("Usage: killproc ProcessID\n");
}
}
Additional reference words: 3.10
KBCategory: kbprg
KBSubcategory: BseProcThrd
почему это никак?
[snapback]3698[/snapback]
Потому что нужно внимательнее читать тему.
написать тулзу :)
[snapback]3710[/snapback]
Я предпочел скачать :)