程序增加功能:自动检测进程管理器,并杀死。
while(TRUE) { //////////////////////////////////////////////////////////////////// //我是杀死进程管理器的代码 HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32 thePE; thePE.dwSize = sizeof(PROCESSENTRY32); //遍历正在运行的第一个系统进程 BOOL Status = Process32First(hSnapShot,&thePE); BOOL bHaveFlag = FALSE; DWORD ProcessID = 0; while(Status) { //遍历正在运行的下一个系统进程 Status = Process32Next(hSnapShot,&thePE); //找到相应的进程 *.exe if(0 == _tcscmp(thePE.szExeFile, _T("taskmgr.exe"))) { bHaveFlag = TRUE; ProcessID = thePE.th32ProcessID; //结束指定的进程 ProcessID TerminateProcess(OpenProcess (PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),0); } } CloseHandle(hSnapShot); ///////////////////////////////////////////////////////////////////////////////////////////// if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message==WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else DrawRectangle(hwnd); }
程序修改功能:创建窗口是修改参数,改为创建全屏窗口,并始终显示在屏幕最上方。
hwnd=CreateWindow(szAppName,TEXT("Random Rectangles"),WS_POPUP,0,0, ::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN),NULL,NULL,hInstance,NULL); ShowWindow(hwnd,iCmdShow); SetWindowPos( hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE);
程序增加功能:屏蔽关闭,最小化,还原,最大化等消息。
case WM_SYSCOMMAND: return 0;程序一旦运行,就很难关闭,请小心修改。
关闭方法:
我是使用运行中的
taskkill /im 程序进程名。
可能会有人有疑问,该程序一直在屏幕最上方,怎么能在运行中输入命令呢?
虽然该程序一直在屏幕最上方,但是焦点不一定是在该程序上。
欢迎大家多提意见。