Guest User

Untitled

a guest
Feb 20th, 2013
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. HWND combo_box, standard;
  2.  
  3. BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
  4. {
  5.     char szBuff[255];
  6.     if(GetWindowText(hwnd, szBuff, sizeof(szBuff)))
  7.     {
  8.         if(!strcmp("&Als Standard", szBuff) && standard == NULL)
  9.         {
  10.             standard = hwnd;
  11.         }
  12.     }
  13.  
  14.     if(GetClassName(hwnd, szBuff, sizeof(szBuff)))
  15.     {
  16.         if(!strcmp("SysListView32", szBuff) && combo_box == NULL)
  17.         {
  18.             combo_box = hwnd;
  19.         }
  20.     }
  21.  
  22.     return true;
  23. }
  24.  
  25. void changeAudio()
  26. {
  27.     static boolean switcher = true;
  28.  
  29.     standard = NULL;
  30.     combo_box = NULL;
  31.  
  32.     HWND Back;
  33.     system("control mmsys.cpl");
  34.     HWND appletWindow = FindWindowA(NULL,"Sound");
  35.     do
  36.     {
  37.         Sleep(10);
  38.         appletWindow = FindWindowA(NULL,"Sound");
  39.     }
  40.     while((appletWindow == NULL));
  41.     do
  42.     {
  43.         Sleep(10);
  44.     }while(!IsWindowVisible(appletWindow));
  45.     EnumChildWindows(appletWindow,EnumChildProc,(LPARAM)&Back);
  46.  
  47.     LVITEM temp;
  48.  
  49.     DWORD PID;
  50.     //DWORD threadId = GetWindowThreadProcessId(combo_box, &PID);
  51.     GetWindowThreadProcessId(combo_box, &PID);
  52.     HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, PID);
  53.     LPVOID lpRemoteBuffer = VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);
  54.  
  55.     temp.mask = LVIF_STATE;
  56.  
  57.     temp.state = 15;
  58.     temp.stateMask = LVIS_SELECTED | LVIS_FOCUSED;
  59.  
  60.     WriteProcessMemory(hProcess, lpRemoteBuffer, &temp,sizeof(LVITEM),NULL);
  61.     SendMessage(combo_box, LVM_SETITEMSTATE, (int)switcher, (LPARAM)lpRemoteBuffer);
  62.     switcher = !switcher;
  63.  
  64.     SendMessage(standard,BM_CLICK,0,0);
  65.     VirtualFreeEx(hProcess, lpRemoteBuffer, 0, MEM_RELEASE);
  66.     CloseHandle(hProcess);
  67.     SendMessage(appletWindow,WM_CLOSE,0,0);
  68. }
Advertisement
Add Comment
Please, Sign In to add comment