亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? liswatch.cpp

?? Windows核心編程配套書的源代碼請參考原書一起看
?? CPP
字號:
/******************************************************************************
Module:  LISWatch.cpp
Notices: Copyright (c) 2000 Jeffrey Richter
******************************************************************************/


#include "..\CmnHdr.h"     /* See Appendix A. */
#include <tchar.h>
#include <windowsx.h>
#include "Resource.h"


///////////////////////////////////////////////////////////////////////////////


#define TIMER_DELAY (500)        // Half a second

UINT_PTR g_uTimerId = 1;
DWORD g_dwThreadIdAttachTo = 0;  // 0=System-wide; Non-zero=specifc thread


///////////////////////////////////////////////////////////////////////////////


BOOL Dlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) {

   chSETDLGICONS(hwnd, IDI_LISWATCH);

   // Update our contents periodically
   g_uTimerId = SetTimer(hwnd, g_uTimerId, TIMER_DELAY, NULL);

   // Make our window on top of all others
   SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
   return(TRUE);
}


///////////////////////////////////////////////////////////////////////////////


void Dlg_OnRButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, 
   UINT keyFlags) {

   chMB("To monitor a specific thread, click the left mouse button in "
        "the main window and release it in the desired window.\n"
        "To monitor all threads, double-click the left mouse button in "
        "the main window.");
}


///////////////////////////////////////////////////////////////////////////////


void Dlg_OnLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, 
   UINT keyFlags) {

   // If we're attached to a thread, detach from it
   if (g_dwThreadIdAttachTo != 0)
      AttachThreadInput(GetCurrentThreadId(), g_dwThreadIdAttachTo, FALSE);

   // Set capture to ourself and change the mouse cursor
   SetCapture(hwnd);
   SetCursor(LoadCursor(GetModuleHandle(NULL), MAKEINTRESOURCE(IDC_EYES)));
}


///////////////////////////////////////////////////////////////////////////////


void Dlg_OnLButtonUp(HWND hwnd, int x, int y, UINT keyFlags) {

   if (GetCapture() == hwnd) {

      // If we had mouse capture set, get the ID of the thread that
      // created the window that is under the mouse cursor.
      POINT pt;
      pt.x = LOWORD(GetMessagePos());
      pt.y = HIWORD(GetMessagePos());
      ReleaseCapture();
      g_dwThreadIdAttachTo = GetWindowThreadProcessId(
         ChildWindowFromPointEx(GetDesktopWindow(), pt, CWP_SKIPINVISIBLE), 
         NULL);

      if (g_dwThreadIdAttachTo == GetCurrentThreadId()) {

         // The mouse button is released on one of our windows; 
         // monitor local-input state on a system-wide basis
         g_dwThreadIdAttachTo = 0;

      } else {

         // The mouse button is released on a window that our thread didn't
         // create; monitor local input state for that thread only.
         AttachThreadInput(GetCurrentThreadId(), g_dwThreadIdAttachTo, TRUE);	
      }
   }
}


///////////////////////////////////////////////////////////////////////////////


static void CalcWndText(HWND hwnd, PTSTR szBuf, int nLen) {

   if (hwnd == (HWND) NULL) {
      lstrcpy(szBuf, TEXT("(no window)")); 
      return;
   }

   if (!IsWindow(hwnd)) {
      lstrcpy(szBuf, TEXT("(invalid window)")); 
      return;
   }

   TCHAR szClass[50], szCaption[50], szBufT[150];
   GetClassName(hwnd, szClass, chDIMOF(szClass));
   GetWindowText(hwnd, szCaption, chDIMOF(szCaption));
   wsprintf(szBufT, TEXT("[%s] %s"), (PTSTR) szClass,
      (szCaption[0] == 0) ? (PTSTR) TEXT("(no caption)") : (PTSTR) szCaption);
   _tcsncpy(szBuf, szBufT, nLen - 1);
   szBuf[nLen - 1] = 0; // Force zero-terminated string
}


//////////////////////////////////////////////////////////////


void Dlg_OnTimer(HWND hwnd, UINT id) {

   TCHAR szBuf[100] = TEXT("System-wide");
   HWND hwndForeground = GetForegroundWindow();
   DWORD dwThreadIdAttachTo = g_dwThreadIdAttachTo;

   if (dwThreadIdAttachTo == 0) {

      // If monitoring local input state system-wide, attach our input
      // state to the thread that created the current foreground window.
      dwThreadIdAttachTo = 
         GetWindowThreadProcessId(hwndForeground, NULL);
      AttachThreadInput(GetCurrentThreadId(), dwThreadIdAttachTo, TRUE);	

   } else {
   
      wsprintf(szBuf, TEXT("0x%08x"), dwThreadIdAttachTo);
   }

   SetWindowText(GetDlgItem(hwnd, IDC_THREADID), szBuf);

   CalcWndText(GetFocus(), szBuf, chDIMOF(szBuf));
   SetWindowText(GetDlgItem(hwnd, IDC_WNDFOCUS), szBuf);

   CalcWndText(GetActiveWindow(), szBuf, chDIMOF(szBuf));
   SetWindowText(GetDlgItem(hwnd, IDC_WNDACTIVE), szBuf);

   CalcWndText(GetCapture(), szBuf, chDIMOF(szBuf));
   SetWindowText(GetDlgItem(hwnd, IDC_WNDCAPTURE), szBuf);

   CalcWndText(hwndForeground, szBuf, chDIMOF(szBuf));
   SetWindowText(GetDlgItem(hwnd, IDC_WNDFOREGRND), szBuf);

   if (g_dwThreadIdAttachTo == 0) {
      // If monitoring local input state system-wide, detach our input
      // state from the thread that created the current foreground window.
      AttachThreadInput(GetCurrentThreadId(), dwThreadIdAttachTo, FALSE);	
   }
}


///////////////////////////////////////////////////////////////////////////////


void Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) {

   switch (id) {
      case IDCANCEL:
         EndDialog(hwnd, id);
         break;
   }
}


///////////////////////////////////////////////////////////////////////////////

        
INT_PTR WINAPI Dlg_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

   switch (uMsg) {
      chHANDLE_DLGMSG(hwnd, WM_INITDIALOG,  Dlg_OnInitDialog);
      chHANDLE_DLGMSG(hwnd, WM_COMMAND,     Dlg_OnCommand);
      chHANDLE_DLGMSG(hwnd, WM_TIMER,       Dlg_OnTimer);
      chHANDLE_DLGMSG(hwnd, WM_RBUTTONDOWN, Dlg_OnRButtonDown);
      chHANDLE_DLGMSG(hwnd, WM_LBUTTONDOWN, Dlg_OnLButtonDown);
      chHANDLE_DLGMSG(hwnd, WM_LBUTTONUP,   Dlg_OnLButtonUp);
   }
   return(FALSE);
}


///////////////////////////////////////////////////////////////////////////////


int WINAPI _tWinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

   DialogBox(hinstExe, MAKEINTRESOURCE(IDD_LISWATCH), NULL, Dlg_Proc);
   return(0);
}


//////////////////////////////// End of File //////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区自拍| 亚洲欧美日韩综合aⅴ视频| 91麻豆免费看| 丁香亚洲综合激情啪啪综合| 免费在线观看精品| 国产99久久久国产精品免费看| 麻豆国产一区二区| 另类小说欧美激情| 国产乱码精品一区二区三区五月婷| 免费看欧美女人艹b| 国内偷窥港台综合视频在线播放| 久久精品噜噜噜成人av农村| 看片网站欧美日韩| 国产麻豆成人传媒免费观看| 国产一区高清在线| 国产白丝精品91爽爽久久| 国产69精品久久99不卡| 成人高清视频免费观看| 一本色道久久综合亚洲aⅴ蜜桃| 91麻豆swag| 欧美久久久久久久久中文字幕| 欧美午夜免费电影| 欧美一级xxx| 国产三级一区二区| 亚洲自拍偷拍图区| 天天操天天干天天综合网| 青青草国产精品97视觉盛宴| 国产剧情一区在线| 色偷偷88欧美精品久久久| 5858s免费视频成人| 国产三级一区二区| 亚洲福利一区二区三区| 久久精品国产精品亚洲红杏| 成人小视频在线观看| 久久久久久一二三区| 日韩毛片视频在线看| 午夜欧美视频在线观看| 高清视频一区二区| 欧美日韩国产一级片| 日本一区二区视频在线观看| 偷拍自拍另类欧美| 99精品一区二区| 精品少妇一区二区三区视频免付费 | 黄色日韩三级电影| 99视频精品全部免费在线| 欧美区一区二区三区| 国产精品久久国产精麻豆99网站| 亚洲va欧美va人人爽| 成人sese在线| 26uuu久久天堂性欧美| 亚洲国产精品影院| 99久久亚洲一区二区三区青草| 91精品在线观看入口| 中日韩av电影| 精品无码三级在线观看视频| 欧美日韩精品免费| 一区二区三区在线视频播放 | 国产suv精品一区二区三区| 欧美性生活大片视频| 国产精品伦理一区二区| 国产一区二区三区香蕉| 欧美精品乱码久久久久久| 亚洲视频你懂的| 丰满少妇在线播放bd日韩电影| 日韩欧美国产精品| 丝袜美腿亚洲色图| 欧美日韩精品一区二区在线播放| 亚洲人成精品久久久久久| www.欧美精品一二区| www成人在线观看| 狠狠色丁香婷综合久久| 成+人+亚洲+综合天堂| 国产女人水真多18毛片18精品视频 | 亚洲成人手机在线| 欧美三区在线观看| 偷拍与自拍一区| 91精品久久久久久久91蜜桃| 天堂成人国产精品一区| 欧美日韩国产一二三| 全国精品久久少妇| 欧美mv日韩mv国产| 国产激情一区二区三区| 国产日韩亚洲欧美综合| 国产精品91一区二区| 国产精品久久久久久久岛一牛影视 | 日本美女一区二区| 日韩美女视频在线| 国产精品1区2区3区在线观看| 久久综合精品国产一区二区三区| 黄页视频在线91| 国产精品妹子av| 91国偷自产一区二区开放时间| 亚洲高清在线视频| 欧美成人video| 成人一级片网址| 亚洲精品日产精品乱码不卡| 欧美日韩国产综合久久| 精品综合免费视频观看| 国产精品污污网站在线观看| 在线亚洲一区二区| 日本怡春院一区二区| 日韩久久精品一区| 91网址在线看| 男男视频亚洲欧美| 国产精品久久久久7777按摩| 欧美群妇大交群中文字幕| 国产乱码精品一区二区三区五月婷| 日韩理论在线观看| 日韩视频一区二区三区 | 中文字幕一区在线| 欧美影院精品一区| 精品一区二区三区免费播放| 欧美极品xxx| 欧美日本高清视频在线观看| 国产精品一线二线三线| 亚洲国产视频网站| 国产亚洲精品久| 91精品蜜臀在线一区尤物| 成人sese在线| 另类人妖一区二区av| 一区二区成人在线| 久久丝袜美腿综合| 欧美精品777| 色天天综合久久久久综合片| 国产精品自拍av| 亚洲v日本v欧美v久久精品| 国产视频一区二区在线观看| 在线成人av网站| 一本大道av一区二区在线播放| 国模一区二区三区白浆| 日本aⅴ亚洲精品中文乱码| 一区二区三区日韩精品视频| 欧美经典三级视频一区二区三区| 日韩视频在线一区二区| 欧美精品日韩一区| 欧美在线影院一区二区| va亚洲va日韩不卡在线观看| 国产精品一品视频| 精品一区二区三区av| 日本中文字幕一区二区有限公司| 亚洲综合自拍偷拍| 一区二区三区在线观看国产| 亚洲欧美在线另类| 国产精品久久三| 亚洲国产精品成人久久综合一区| 久久久久亚洲蜜桃| 久久久亚洲午夜电影| 久久久午夜精品| 久久久午夜电影| 久久综合av免费| 国产欧美精品日韩区二区麻豆天美| 精品1区2区在线观看| 精品播放一区二区| 国产亚洲欧美激情| 国产精品人人做人人爽人人添| 国产三级久久久| 亚洲欧洲无码一区二区三区| 一区二区中文字幕在线| 亚洲美女淫视频| 亚洲成人动漫在线免费观看| 亚洲chinese男男1069| 首页国产欧美久久| 久久电影国产免费久久电影| 精品一区二区三区在线视频| 韩国欧美国产1区| 成人av免费观看| 91黄色小视频| 日韩免费成人网| 亚洲国产高清aⅴ视频| 亚洲乱码国产乱码精品精的特点 | 久久综合九色综合欧美亚洲| 久久综合久久综合亚洲| 国产欧美一区二区在线观看| 亚洲欧美日韩国产手机在线| 亚洲一区二区三区自拍| 久久国产三级精品| 成人在线视频一区二区| 在线亚洲+欧美+日本专区| 日韩欧美国产综合| 国产农村妇女毛片精品久久麻豆| 亚洲精品日韩专区silk| 久久精品国产久精国产爱| 不卡欧美aaaaa| 777欧美精品| 国产精品国产三级国产普通话99| 亚洲午夜视频在线观看| 国产一区视频在线看| 色综合久久中文字幕| 日韩一级片网站| 亚洲情趣在线观看| 久久66热偷产精品| 91在线无精精品入口| 精品国产麻豆免费人成网站| 亚洲美女在线一区| 国产裸体歌舞团一区二区| 欧美色视频在线| 国产精品久久午夜| 激情久久久久久久久久久久久久久久| 91碰在线视频| 国产日韩欧美亚洲|