该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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;
}