c语言作业任务管理器,C语言杀掉任务管理器的进程

msdn 有个sample http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701(v=vs.85).aspx ,稍作修改即可

#include 

#include 

#include 

//  Forward declarations:

BOOL GetProcessList( );

void printError( TCHAR* msg )

{

printf(msg);

}

void main( )

{

GetProcessList( );

}

BOOL GetProcessList( )

{

HANDLE hProcessSnap;

HANDLE hProcess;

PROCESSENTRY32 pe32;

DWORD dwPriorityClass;

// Take a snapshot of all processes in the system.

hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );

if( hProcessSnap == INVALID_HANDLE_VALUE )

{

printError( "CreateToolhelp32Snapshot (of processes)" );

return( FALSE );

}

// Set the size of the structure before using it.

pe32.dwSize = sizeof( PROCESSENTRY32 );

// Retrieve information about the first process,

// and exit if unsuccessful

if( !Process32First( hProcessSnap, &pe32 ) )

{

printError( "Process32First" ); // Show cause of failure

CloseHandle( hProcessSnap );    // Must clean up the

//   snapshot object!

return( FALSE );

}

// Now walk the snapshot of processes, and

// display information about each process in turn

do

{

printf( "\n\n"

"=====================================================" );

printf( "\nPROCESS NAME:  %s", pe32.szExeFile );

printf( "\n"

"-----------------------------------------------------" );

// Retrieve the priority class.

dwPriorityClass = 0;

hProcess = OpenProcess(

PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID );

if( hProcess == NULL )

printError( "OpenProcess" );

else

{

dwPriorityClass = GetPriorityClass( hProcess );

if( !dwPriorityClass )

printError( "GetPriorityClass" );

CloseHandle( hProcess );

}

printf( "\n  process ID        = 0x%08X", pe32.th32ProcessID );

printf( "\n  thread count      = %d",   pe32.cntThreads );

printf( "\n  parent process ID = 0x%08X",

pe32.th32ParentProcessID );

printf( "\n  Priority Base     = %d", pe32.pcPriClassBase );

if( dwPriorityClass )

printf( "\n  Priority Class    = %d", dwPriorityClass );

// List the modules and threads associated with this process

//ListProcessModules( pe32.th32ProcessID );

//ListProcessThreads( pe32.th32ProcessID );

if (stricmp(pe32.szExeFile, "notepad.exe") == 0)

{

hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID );

DWORD dwExitCode = 0;

if (GetExitCodeProcess(hProcess, &dwExitCode))

{

TerminateProcess(hProcess, dwExitCode);

printf( "\n TerminateProcess notepad.exe +++");

}

else

{

DWORD error = GetLastError();

printf( "\n TerminateProcess notepad.exe failed, error code = %d ---", error);

}

CloseHandle( hProcess );

}

} while( Process32Next( hProcessSnap, &pe32 ) );

CloseHandle( hProcessSnap );

return( TRUE );

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值