看windows api的时候,作为练习,编写了个删除进程的程序。觉得里面知识点挺多的,所以贴上来当个笔记用。当然难免有错误,欢迎指教 ^^
其中也用到了篇文章里面说到的调整权限的函数,于是就直接从关机程序里面copy过来了。下面是程序,关键地方给了注释。
看windows api的时候,作为练习,编写了个删除进程的程序。觉得里面知识点挺多的,所以贴上来当个笔记用。当然难免有错误,欢迎指教 ^^ 其中也用到了上篇文章里面说到的调整权限的函数,于是就直接从关机程序里面copy过来了。下面是程序,关键地方给了注释。 #include<stdio.h> #include<windows.h> #include<Tlhelp32.h> void ListProcess() //列出进程名称及ID { HANDLE hProcessSnap=NULL; PROCESSENTRY32 pe32={0}; //存放进程信息的结构体 hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //创建系统所有进程的快照 if(hProcessSnap==INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot failed: %d\n",GetLastError()); return; } pe32.dwSize=sizeof(PROCESSENTRY32); printf("ProcessName ProcessID\n"); if(Process32First(hProcessSnap,&pe32)) //指向第一个进程,并将其放入PROCESSENTRY32结构体中 { char c[5]; do { itoa(pe32.th32ProcessID,c,10); printf("%-30s%d\n",pe32.szExeFile,pe32.th32ProcessID); //szExeFile为进程的可执行文件名称 } while(Process32Next(hProcessSnap,&pe32)); } else { printf("Process32First() failed:%d\n",GetLastError()); } CloseHandle(hProcessSnap); return; } BOOL EnablePrivilege() //获取系统权限 { HANDLE hProcess = NULL; HANDLE hToken = NULL; LUID uID = {0}; TOKEN_PRIVILEGES stToken_Privileges = {0}; hProcess = GetCurrentProcess(); //获取当前应用程序进程句柄 if(!OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken)) //打开当前进程的访问令牌句柄 //(OpenProcessToken函数调用失败返回值为零) return FALSE; if(!LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&uID)) //获取权限名称为"SeShutdownPrivilege"的LUID //LookupPrivilegeValue函数调用失败返回值为零 return FALSE; stToken_Privileges.PrivilegeCount = 1; //欲调整的权限个数 stToken_Privileges.Privileges[0].Luid = uID; //权限的LUID stToken_Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; //权限的属性, //SE_PRIVILEGE_ENABLED为使能该权限 //调整访问令牌里的指定权限(AdjustTokenPrivileges函数调用失败返回值为零) if(!AdjustTokenPrivileges(hToken,FALSE,&stToken_Privileges,sizeof stToken_Privileges,NULL,NULL)) return FALSE; if(GetLastError() != ERROR_SUCCESS) //查看权限是否调整成功 return FALSE; CloseHandle(hToken); return TRUE; } bool KillProcess(DWORD id) { HANDLE hProcess=NULL,hProcessToken=NULL; bool isKilled=false,bRet=false; EnablePrivilege(); //调整权限 printf("Enable Privilege OK!\n"); if((hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,id))==NULL) //打开进程获得句柄 { printf("Open process %d failed: %d\n",id,GetLastError()); return false; } if(!TerminateProcess(hProcess,1)) //终结进程 { printf("TerminateProcess failed: %d\n",GetLastError()); return false; } isKilled=true; if(hProcessToken!=NULL) CloseHandle(hProcessToken); if(hProcess!=NULL) CloseHandle(hProcess); return isKilled; } void main() { int id=0; ListProcess(); while(1) { printf("选择要删除的进程ID:"); scanf("%d",&id); if(KillProcess(id)==true) { system("cls"); ListProcess(); } else printf("Failed!!"); } }
Atas ialah kandungan terperinci 一个删除进程的小程序详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft
