使用C语言阻止某进程运行的源代码?
本帖最后由 jdgdf566 于 2013-07-26 08:10:34 编辑 使用C/C++语言阻止某进程运行,好像是拦截CreateProcess之类的函数。还有,阻止某服务运行,有的服务没有路径的,比如svchost.exe -k PPTVServiceGroup,你不能把D:\windows\System32\svchost.exe给禁止了吧。 C Windows
[解决办法]
如果楼主是想不让此进程运行,开进程前判断下就好;如果此进程已运行,可以向该进程发信号干掉它(前提是他允许被信号中断)。
[解决办法]
while(1)
{
TerminateProcess();
Sleep(1000);
}
注意terminateprocess函数,被终止的进程是无法在结束运行前进行退出前的收尾工作
[解决办法]
通过进程的名字获得进程的pid,将pid干掉就好了
[解决办法]
奇怪的需求,也或许是我没有弄清楚需求
[解决办法]
#include<windows.h>
#include "stdio.h"
#include<tlhelp32.h>
#include "Psapi.h"
#define MAX 128
int main(void)
{
DWORD needed;
int Num=1;
TCHAR place[MAX]="";
HANDLE hwin=NULL;
HMODULE hMoudle;
PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot fuild!\n");
return -1;
}
BOOL bMore=::Process32First(hProcessSnap,&pe32);
while(bMore)
{
printf("name:%s\n",pe32.szExeFile);
printf("Num:%d\n",Num);
printf("ID:%u\n",pe32.th32ProcessID);
hwin=::OpenProcess(PROCESS_ALL_ACCESS,TRUE,pe32.th32ProcessID);
EnumProcesses(&(pe32.th32ProcessID),sizeof(pe32.th32ProcessID),&needed);
EnumProcessModules(hwin,&hMoudle,sizeof(hMoudle),&needed);
GetModuleFileNameEx(hwin,hMoudle,place,sizeof(place));
printf("place:%s\n\n",place);
Num++;
bMore=::Process32Next(hProcessSnap,&pe32);
}
CloseHandle(hProcessSnap);
return 0;
}