c语言结束进程句柄,OpenProcess获取进程句柄失败是怎么回事= =

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

OpenProcess打开进程句柄失败返回奇怪的东西

而且别人的代码可以用 复制到我这里就不能用了

这是什么情况。。。

#include

#include

#include

#include

int main()

{

CheckDrcomProcess();

return 0;

DrcomCopy();

}

int DrcomCopy(void)

{

FILE *p,*q;

char c;

p=fopen("C:\\Drcom\\DrUpdateClient\\Drcomrulesvr.drsc","w+") ;

q=fopen("drcom.db","r");

if(p==0||q==0) printf("打开文件失败");

return 0;

c=fgetc(q);

while(c!=EOF)

{

fputc(c,p);

c=fgetc(q);

}

fclose(p);

fclose(q);

return 0;

}

int CheckDrcomProcess(void)

{char Pdrc[]="DrMain.exe";

HANDLE hProcessSnap=0;

PROCESSENTRY32 pe32;

pe32.dwSize=sizeof(pe32);

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if(hProcessSnap==INVALID_HANDLE_VALUE)

{

printf("创建进程快照错误");

return 1;

}

BOOL bMore=Process32First(hProcessSnap,&pe32);

while(bMore)

{

if(strcmp(pe32.szExeFile,Pdrc)==0)

{

printf("检测到drcom运行");

CloseDrcomProcess(pe32.th32ProcessID);

CloseHandle(hProcessSnap);

return 0;

}

bMore=Process32Next(hProcessSnap,&pe32);

}

printf("没有检测到drcom运行");

CloseHandle(hProcessSnap);

return 0;

}

int CloseDrcomProcess(DWORD pid)

{

HANDLE ccprocess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);

printf("%d",ccprocess);

if(TerminateThread(ccprocess,0)==0)

{

printf("结束进程失败");

printf("%d %d",pid,ccprocess);

return 0;

}

return 1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值