Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  aaa
Language: C/C++
Code:
#include <stdio.h>
#include <windows.h>


#define SENDKEYT postText
HWND g_hwnd=NULL;

BOOL SendText(HWND wnd, LPCSTR lpctszText, bool ctrl = 0, bool shift = 0);
int getpxcolor(HWND wnd, int& r, int& g, int& b, int*width=0, int*height = 0);
BOOL SendMouse(HWND wnd, int x, int y);
bool postText(HWND wnd, LPCSTR lpctszText, bool ctrl, bool shift);

HWND hwnd11 = NULL;
int runthread = 0;

bool bInRange(int b, int val)
{
     if ((b >= val - 1) && (b <= val + 1))
     {
          return true;
     }

     return false;
}

int g_afk = 0;
DWORD WINAPI thrroutine4(LPVOID lpThreadParameter)
{
     Sleep(3000);
     hwnd11 = ::GetForegroundWindow();
          //::MessageBoxA(g_hwnd, "aaa", "err", MB_OK);
     if (hwnd11 == NULL)
     {
          //cout << "it can't find any 'note' window" << endl;
          ::MessageBoxA(g_hwnd, "can't find any 'note' window", "err", MB_OK);
          
     }
     else
     {
          ::MessageBoxA(g_hwnd, "wnd found", "err", MB_OK);

     }

     return 0;
}

DWORD WINAPI thrroutine5(LPVOID lpThreadParameter);

DWORD WINAPI thrroutine3(LPVOID lpThreadParameter)
{

     int waitforcmd = 0;

     while (true)
     {
          if (g_afk == 1)
          {
               Sleep(10000);
               SENDKEYT(hwnd11, " ", 0, 0);
               Sleep(60000 + (rand() % 3000) * 100);
          }

          if (runthread != 1)
          {
               Sleep(1000);
               continue;
          }

          int r = 0;
          int g = 0;
          int b = 0;
          int width = 0;
          int height = 0;
          getpxcolor(hwnd11, r, g, b, &width, &height);

          if ((r<5) && (g<5) && (b<5))
          {
               waitforcmd = 0;
               Sleep(100);
               continue;
          }

          if (waitforcmd != 0)
          {
               Sleep(100);
               continue;
          }

          /*static DWORD tt = GetTickCount();
          if (tt < GetTickCount())
          {
               //if (IsWindow(hwnd11))
               {
                    //HWND activewindow = GetForegroundWindow();
                    //if (activewindow != hwnd11)
                    {
                         SendMouse(hwnd11, 10, 10);
                         SendText(hwnd11, "1", 0, 0);
                         tt = GetTickCount() + 3000;
                    }
               }
          }*/

          //dk
          if ((bInRange(b, 10)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "z", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 13)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "x", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 16)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "c", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 19)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "v", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 22)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "b", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 25)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "n", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 28)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "m", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 31)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, ",", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 34)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, ".", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 37)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "/", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 40)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "f", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 43)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "g", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 46)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "h", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 56)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "j", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 59)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "k", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 61)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "l", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 64)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, ";", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 67)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "'", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 70)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "e", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 73)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "r", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 76)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "t", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 79)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "y", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 82)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "u", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 85)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "i", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 88)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "o", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 91)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "p", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 94)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "[", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 97)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "]", 1, 1);
               waitforcmd = 1;
          }
          if ((bInRange(b, 50)) && (g == 10) && (r == 10))
          {
               SENDKEYT(hwnd11, "", 1, 1);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 20)) && (r == 10))
          {
               SENDKEYT(hwnd11, "`", 1, 1);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 23)) && (r == 10))
          {
               //SENDKEYT(hwnd11, "1", 1, 1);
               SENDKEYT(hwnd11, "m", 1, 1);
               SENDKEYT(hwnd11, ",", 1, 1);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 26)) && (r == 10))
          {
               //SENDKEYT(hwnd11, "2", 1, 1);
               SENDKEYT(hwnd11, "o", 1, 1);
               SENDKEYT(hwnd11, "x", 1, 1);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 29)) && (r == 10))
          {
               SENDKEYT(hwnd11, "3", 1, 1);
               waitforcmd = 1;
          }

          if ((b == 10) && (bInRange(g, 32)) && (r == 10))
          {
               SENDKEYT(hwnd11, "6", 1, 1);
               SendMouse(hwnd11, width/2 * 35, height/2 * 75);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 35)) && (r == 10))
          {
               SENDKEYT(hwnd11, "5", 1, 1);
               SendMouse(hwnd11, width / 2 * 35, height / 2 * 75);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 38)) && (r == 10))
          {
               SENDKEYT(hwnd11, "4", 1, 1);
               waitforcmd = 1;
          }
          if ((b == 10) && (bInRange(g, 44)) && (r == 10))
          {
               SENDKEYT(hwnd11, "2", 1, 1);
               waitforcmd = 1;
          }



          Sleep(50);
     }

     return 0;
}

BOOL SendMouse(HWND wnd, int x, int y)
{
     HWND activewindow = GetForegroundWindow();
     if (activewindow != wnd)
     {
          return 0;
     }

     if (!IsWindow(wnd))
          return 0;

     INPUT input;
     input.type = INPUT_MOUSE;
     input.mi.dx = x;
     input.mi.dy = y;
     input.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP);
     input.mi.mouseData = 0;
     input.mi.dwExtraInfo = NULL;
     input.mi.time = 0;
     SendInput(1, &input, sizeof(INPUT));

     input.type = INPUT_MOUSE;
     input.mi.dx = x;
     input.mi.dy = y;
     input.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_RIGHTUP);
     input.mi.mouseData = 0;
     input.mi.dwExtraInfo = NULL;
     input.mi.time = 0;
     SendInput(1, &input, sizeof(INPUT));

     input.type = INPUT_MOUSE;
     input.mi.dx = x;
     input.mi.dy = y;
     input.mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP);
     input.mi.mouseData = 0;
     input.mi.dwExtraInfo = NULL;
     input.mi.time = 0;
     SendInput(1, &input, sizeof(INPUT));
     return 0;

}

#include <vector>
BOOL SendText(HWND wnd, LPCSTR lpctszText, bool ctrl, bool shift)
{
     HWND activewindow = GetForegroundWindow();
     if (activewindow != wnd)
     {
          return 0;
     }

     if (!IsWindow(wnd))
          return 0;

     std::vector< INPUT > EventQueue;

     char Buff[120] = { 0 };
     GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, Buff, sizeof(Buff));
     HKL hKeyboardLayout = ::LoadKeyboardLayoutA(Buff, KLF_ACTIVATE);

     const int Len = strlen(lpctszText);
     for (int Index = 0; Index < Len; ++Index)
     {
          INPUT Event = { 0 };

          const SHORT Vk = VkKeyScanEx(lpctszText[Index], hKeyboardLayout);
          const UINT VKey = ::MapVirtualKey(LOBYTE(Vk), 0);

          if ((HIBYTE(Vk) == 1) || (shift == 1)) // Check if shift key needs to be pressed for this key
          {
               // Press shift key
               ::ZeroMemory(&Event, sizeof(Event));
               Event.type = INPUT_KEYBOARD;
               Event.ki.dwFlags = KEYEVENTF_SCANCODE;
               Event.ki.wScan = ::MapVirtualKey(VK_LSHIFT, 0);
               EventQueue.push_back(Event);
          }

          if (ctrl == 1) // Check if shift key needs to be pressed for this key
          {
               // Press shift key
               ::ZeroMemory(&Event, sizeof(Event));
               Event.type = INPUT_KEYBOARD;
               Event.ki.dwFlags = KEYEVENTF_SCANCODE;
               Event.ki.wScan = ::MapVirtualKey(VK_CONTROL, 0);
               EventQueue.push_back(Event);
          }

          // Keydown
          ::ZeroMemory(&Event, sizeof(Event));
          Event.type = INPUT_KEYBOARD;
          Event.ki.dwFlags = KEYEVENTF_SCANCODE;
          Event.ki.wScan = VKey;
          EventQueue.push_back(Event);

          // Keyup
          ::ZeroMemory(&Event, sizeof(Event));
          Event.type = INPUT_KEYBOARD;
          Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
          Event.ki.wScan = VKey;
          EventQueue.push_back(Event);

          if ((HIBYTE(Vk) == 1) || (shift == 1))// Release if previouly pressed
          {
               // Release shift key
               ::ZeroMemory(&Event, sizeof(Event));
               Event.type = INPUT_KEYBOARD;
               Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
               Event.ki.wScan = ::MapVirtualKey(VK_LSHIFT, 0);
               EventQueue.push_back(Event);
          }

          if (ctrl == 1)// Release if previouly pressed
          {
               // Release shift key
               ::ZeroMemory(&Event, sizeof(Event));
               Event.type = INPUT_KEYBOARD;
               Event.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
               Event.ki.wScan = ::MapVirtualKey(VK_CONTROL, 0);
               EventQueue.push_back(Event);
          }
     }// End for

     if (hKeyboardLayout)
     {
          UnloadKeyboardLayout(hKeyboardLayout);
     }

     return ::SendInput(EventQueue.size(), &EventQueue[0], sizeof(INPUT));
}

bool postText(HWND wnd, LPCSTR lpctszText, bool ctrl, bool shift)
{
     int key = -1;

     {

          if ((lpctszText[0] >= 'a') && (lpctszText[0] <= 'z'))
          {
               key = (int)(lpctszText[0]) - 'a' + 0x41;
          }

          if (lpctszText[0] == ' ')
                    key = VK_SPACE;

          if ((lpctszText[0] >= '0') && (lpctszText[0] <= '9'))
          {
               key = (int)(lpctszText[0]) - '0' + 0x30;
          }

          if (lpctszText[0] == ',')
               key = VK_OEM_COMMA;
          if (lpctszText[0] == '.')
               key = VK_OEM_PERIOD;
          if (lpctszText[0] == '/')
               key = VK_OEM_2;
          if (lpctszText[0] == ';')
               key = VK_OEM_1;
          if (lpctszText[0] == ''')
               key = VK_OEM_7;
          if (lpctszText[0] == '[')
               key = VK_OEM_4;
          if (lpctszText[0] == ']')
               key = VK_OEM_6;
          if (lpctszText[0] == '')
               key = VK_OEM_5;
          if (lpctszText[0] == '`')
               key = VK_OEM_3;

     }

     if (key == -1)
     {
          MessageBoxA(NULL, "Unknown Key", "error", MB_OK);
     }

     if(ctrl==1)
     {
          int lparam = 1;
          PostMessage(wnd, WM_KEYDOWN, VK_CONTROL, lparam);
     }

     if(shift==1)
     {
          int lparam = 1;
          PostMessage(wnd, WM_KEYDOWN, VK_SHIFT, lparam);
     }

     {
          int lparam = 1;
          PostMessage(wnd, WM_KEYDOWN, key, lparam);
          lparam = 1 & 0xC0000000;
          PostMessage(wnd, WM_KEYUP, key, lparam);
     }

     if(ctrl==1)
     {
          int lparam = 1;
          lparam = 1 & 0xC0000000;
          PostMessage(wnd, WM_KEYUP, VK_CONTROL, lparam);
     }

     if(shift==1)
     {
          int lparam = 1;
          lparam = 1 & 0xC0000000;
          PostMessage(wnd, WM_KEYUP, VK_SHIFT, lparam);
     }

     return 0;
}

int getpxcolor(HWND wnd11, int& r, int& g, int& b, int* width, int* height)
{
     if (wnd11 == 0)
          return 0;

     if (!IsWindow(wnd11))
          return 0;

     RECT rc;
     ::GetClientRect(hwnd11, &rc);

     //create
     HDC hdcScreen = ::GetDC(NULL);
     HDC hdc = ::CreateCompatibleDC(hdcScreen);
     HBITMAP hbmp = ::CreateCompatibleBitmap(hdcScreen, rc.right - rc.left, rc.bottom - rc.top);
     ::SelectObject(hdc, hbmp);

     //Print to memory hdc
     ::PrintWindow(hwnd11, hdc, PW_CLIENTONLY);


     ////copy to clipboard
     //OpenClipboard(NULL);
     //EmptyClipboard();
     //SetClipboardData(CF_BITMAP, hbmp);
     //CloseClipboard();

     BITMAPINFO MyBMInfo = { 0 };
     MyBMInfo.bmiHeader.biSize = sizeof(MyBMInfo.bmiHeader);

     // Get the BITMAPINFO structure from the bitmap
     if (0 == GetDIBits(hdc, hbmp, 0, 0, NULL, &MyBMInfo, DIB_RGB_COLORS))
     {
          ::MessageBoxA(NULL, "error", "err", MB_OK);
          return 0;
     }

     // create the bitmap buffer
     BYTE* lpPixels = new BYTE[MyBMInfo.bmiHeader.biSizeImage];

     // Better do this here - the original bitmap might have BI_BITFILEDS, which makes it
     // necessary to read the color table - you might not want this.
     MyBMInfo.bmiHeader.biCompression = BI_RGB;

     // get the actual bitmap buffer
     if (0 == GetDIBits(hdc, hbmp, 0, MyBMInfo.bmiHeader.biHeight, (LPVOID)lpPixels, &MyBMInfo, DIB_RGB_COLORS))
     {
          ::MessageBoxA(NULL, "error2", "err", MB_OK);
          return 0;
     }

     if (width != NULL)
          *width = MyBMInfo.bmiHeader.biWidth;

     if (height != NULL)
          *height = MyBMInfo.bmiHeader.biHeight;

     //      for(int i = 0; i < 100; i++) 
     //      {
     //           cout << (int)lpPixels[i];
     //      }

     //      int i1=lpPixels[0];//49
     //      int i2=lpPixels[1];//108
     //      int i3=lpPixels[2];//145
     //      int i4=lpPixels[3];//255
     //      int i5=lpPixels[4];//49
     //      int i6=lpPixels[5];//110
     //      int i7=lpPixels[6];//147
     //      int i8=lpPixels[7];//255
     //      int i9=lpPixels[8];//51
     //      int i10=lpPixels[9];//115

     int i1 = 0;
     int i2 = 0;
     int i3 = 0;
     int i4 = 0;
     int i5 = 0;
     int i6 = 0;
     int i7 = 0;
     int i8 = 0;
     int i9 = 0;
     int i10 = 0;

     BYTE iii[100];
     int pos = MyBMInfo.bmiHeader.biWidth*(MyBMInfo.bmiHeader.biHeight - 1) * 4;
     memmove(iii, lpPixels + pos, sizeof(iii));


     //BYTE aaa1[4];
     //memmove(aaa1,lpPixels,4);

     //BYTE aaa2[4];
     //memmove(aaa2,lpPixels+,4);


     for (int i = 0; i<11; i++)
     {
          i1 += iii[i * 4];
          i2 += iii[i * 4 + 1];
          i3 += iii[i * 4 + 2];
          i4 += iii[i * 4 + 3];
     }

     i1 = i1 / 11;
     i2 = i2 / 11;
     i3 = i3 / 11;
     i4 = i4 / 11;

     int a1 = i1 * 100 / 255;//22 
     int a2 = i2 * 100 / 255;//52 
     int a3 = i3 * 100 / 255;//65 

     delete[] lpPixels;


     //copy to clipboard
     //      ::OpenClipboard(NULL);
     //      ::EmptyClipboard();
     //      ::SetClipboardData(CF_BITMAP, hbmp);
     //      ::CloseClipboard();

     //release
     ::DeleteDC(hdc);
     ::DeleteObject(hbmp);
     ::ReleaseDC(NULL, hdcScreen);

     r = a1;
     g = a2;
     b = a3;

     return 1;
}


int main(int argc, char *argv[])
{
     printf("Hello World!");
     getchar();
     return 0;
}
          
          
          
          
          
          
          
          
          
Comments: