// stdafx.cpp : Ç¥ÁØ Æ÷ÇÔ ÆÄÀϸ¸ µé¾î ÀÖ´Â ¼Ò½º ÆÄÀÏÀÔ´Ï´Ù. // SunUpdateAgent.pch´Â ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ°¡ µË´Ï´Ù. // stdafx.obj¿¡´Â ¹Ì¸® ÄÄÆÄÀÏµÈ Çü½Ä Á¤º¸°¡ Æ÷ÇԵ˴ϴÙ. #include "stdafx.h" // TODO: ÇÊ¿äÇÑ Ãß°¡ Çì´õ´Â // ÀÌ ÆÄÀÏÀÌ ¾Æ´Ñ STDAFX.H¿¡¼­ ÂüÁ¶ÇÕ´Ï´Ù. CBasicLog* g_pLog = NULL; VOID MessageOut( TCHAR* pszMsg... ) { char strBuffer[256]; va_list args; va_start(args, pszMsg); _vsnprintf( strBuffer, 256, pszMsg, args ); va_end(args); printf("%s\n", strBuffer); //Àӽ÷Î.. ½ã·Î±×°¡ »ý¼ºµÇÁö ¾Ê¾ÒÀ¸¸é È­¸é¿¡ Ãâ·Â½ÃÄѶó... if(g_pLog) g_pLog->InsertMessage( strBuffer ); } //ÇöÀç ÄÄÇ»ÅÍ¿¡ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁßÀÎÁö üũ. //½ÇÇàÁßÀÎ ÇÁ·Î±×·¥ÀÌ Çϳª¶óµµ ÀÖÀ¸¸é TRUE¸®ÅÏ //¾Æ´Ï¸é FASLE¸¦ ¸®ÅÏ.. BOOL CheckLiveProcess( TCHAR* pszProcess, OUT DWORD& dwProID, DWORD dwExceptProcID ) { if( !pszProcess || strcmp( pszProcess, "" ) == 0 ) return FALSE; // ÇÁ·Î¼¼½º üũ ·±Ãijª °ÔÀÓ Å¬¶óÀÌ¾ðÆ®°¡ ½ÇÇàÁßÀÎÁö üũÇÑ´Ù HANDLE hSnapShot = NULL; PROCESSENTRY32 pEntry = {0}; //Get the snapshot of the system hSnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); if( hSnapShot == INVALID_HANDLE_VALUE ) return FALSE; pEntry.dwSize = sizeof(pEntry); //Get first process if( Process32First(hSnapShot, &pEntry) ) { //Iterate thru all processes DWORD dwMySelfPID = GetCurrentProcessId(); do { //ÀÚ±â ÀÚ½ÅÀº ³Ñ¾î°£´Ù. Á¦¿ÜÇÒ ÇÁ·Î¼¼¼­ idµµ ³Ñ¾î°£´Ù. if( dwMySelfPID == pEntry.th32ProcessID || dwExceptProcID == pEntry.th32ProcessID ) continue; // ½ÇÇà ÁßÀÎÁö üũÇϵµ·Ï ÇÑ´Ù. if( strcmp( pEntry.szExeFile, pszProcess ) == 0 ) //ÇöÀç °°Àº ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁßÀ̶ó¸é.. { dwProID = pEntry.th32ProcessID; CloseHandle( hSnapShot ); return TRUE; } } while ( Process32Next(hSnapShot, &pEntry) ); }// End While CloseHandle( hSnapShot ); return FALSE; } BOOL ServerForceShutDown( DWORD dwPID ) { HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwPID ); DWORD dwExitCode = 0; if( !GetExitCodeProcess( hProcess, &dwExitCode ) ) { CloseHandle( hProcess ); return FALSE; } if( !TerminateProcess( hProcess, dwExitCode ) ) { CloseHandle( hProcess ); return FALSE; } return TRUE; }