whiplk

WinAPI pt2(EXTRA CODE)

Jul 27th, 2013
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.64 KB | None | 0 0
  1. //--------------------------------------------------------------------------------------
  2. // Copyright (c) CODE.ME - since 2013.1. All rights reserved.
  3. //--------------------------------------------------------------------------------------
  4. #include <windows.h>
  5. #include <stdio.h>
  6. #include <tchar.h>
  7. #include <psapi.h>
  8.  
  9. #pragma comment(lib, "Psapi.lib")
  10.  
  11. HWND        g_hWnd = NULL;
  12.  
  13. HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow );
  14. LRESULT CALLBACK    WndProc( HWND, UINT, WPARAM, LPARAM );
  15.  
  16. int searchGTAProcess( DWORD processID )
  17. {
  18.     TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
  19.     HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );
  20.     if (NULL != hProcess )
  21.     {
  22.         HMODULE hMod;
  23.         DWORD cbNeeded;
  24.  
  25.         if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
  26.         {
  27.             GetModuleBaseName( hProcess, hMod, szProcessName,
  28.                                sizeof(szProcessName)/sizeof(TCHAR) );
  29.         }
  30.     }
  31.     CloseHandle( hProcess );
  32.  
  33.     if (wcsstr(szProcessName, L"gta_sa.exe")) return 1;
  34.     return 0;
  35. }
  36.  
  37. int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
  38. {
  39.     UNREFERENCED_PARAMETER( hPrevInstance );
  40.     UNREFERENCED_PARAMETER( lpCmdLine );
  41.  
  42.     if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
  43.         return 0;
  44.        
  45.     MSG msg = {0};
  46.     while( GetMessage( &msg, NULL, 0, 0 ) )
  47.     {
  48.         TranslateMessage( &msg );
  49.         DispatchMessage( &msg );
  50.     }
  51.  
  52.     return ( int )msg.wParam;
  53. }
  54.  
  55. HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow )
  56. {
  57.     WNDCLASSEX wcex;
  58.     wcex.cbSize = sizeof( WNDCLASSEX );
  59.     wcex.style = CS_HREDRAW | CS_VREDRAW;
  60.     wcex.lpfnWndProc = WndProc;
  61.     wcex.cbClsExtra = 0;
  62.     wcex.cbWndExtra = 0;
  63.     wcex.hInstance = hInstance;
  64.     wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
  65.     wcex.hbrBackground = ( HBRUSH )GetStockObject(LTGRAY_BRUSH);//( COLOR_WINDOW + 1 );
  66.     wcex.lpszMenuName = NULL;
  67.     wcex.lpszClassName = L"codeme";
  68.     if( !RegisterClassEx( &wcex ) )
  69.         return E_FAIL;
  70.        
  71.     RECT rc = { 0, 0, 470, 240 };
  72.     AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );
  73.     g_hWnd = CreateWindow( L"codeme", L"Localizando GTA.", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL );
  74.  
  75.     CreateWindow(L"BUTTON", L"Localizar", WS_CHILD + WS_VISIBLE + WS_TABSTOP, 235, 120, 80, 25, g_hWnd, (HMENU)1, hInstance, NULL);
  76.  
  77.     if( !g_hWnd )
  78.         return E_FAIL;
  79.  
  80.     ShowWindow( g_hWnd, nCmdShow );
  81.  
  82.     return S_OK;
  83. }
  84.  
  85. LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
  86. {
  87.     PAINTSTRUCT ps;
  88.     HDC hdc;
  89.  
  90.     switch( message )
  91.     {
  92.         case WM_COMMAND:
  93.         {
  94.             if (LOWORD(wParam) == 1)
  95.             {
  96.                 DWORD allProcess[1024], currProcess, id;
  97.  
  98.                 if (!EnumProcesses(allProcess, sizeof(allProcess), &id))
  99.                 {
  100.                     MessageBox(NULL, L"Não foi possível executar a função.", L"ERRO", MB_ICONERROR);
  101.                 }
  102.  
  103.                 currProcess = id / sizeof(DWORD);
  104.  
  105.                 for (int i = 0; i < currProcess; ++i)
  106.                 {
  107.                     if (allProcess[i] != 0)
  108.                     {
  109.  
  110.                         if (searchGTAProcess(allProcess[i]))
  111.                         {
  112.                             MessageBox(NULL, L"GTA localizado !", L"Aviso", MB_ICONINFORMATION);
  113.                         }
  114.                     }
  115.                 }
  116.             }
  117.             break;
  118.         }
  119.         case WM_PAINT:
  120.             hdc = BeginPaint( hWnd, &ps );
  121.             EndPaint( hWnd, &ps );
  122.             break;
  123.  
  124.         case WM_DESTROY:
  125.             PostQuitMessage( 0 );
  126.             break;
  127.  
  128.         default:
  129.             return DefWindowProc( hWnd, message, wParam, lParam );
  130.     }
  131.  
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment