计算机二级C技巧:VC6.0控制鼠标反方向移动计算机二级考试

文章作者 100test 发表时间 2009:04:10 01:30:02
来源 100Test.Com百考试题网


  dll代码:
  #define _WIN32_WINNT 0x400
  #include <.windows.h>.
  #pragma data_seg("Shared")
  HHOOK NextHook = NULL.
  SIZE Screen = {0, 0}.
  POINT pt = {0, 0}.
  #pragma data_seg()
  HMODULE 设为首页 Module.
  BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
  {
  if (ul_reason_for_call == DLL_PROCESS_ATTACH)
  Module = hModule.
  return TRUE.
  }
  LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
  {
  if (nCode == 0)
  {
  PMSLLHOOKSTRUCT mhs = (PMSLLHOOKSTRUCT)lParam.
  if (mhs->.pt.x != pt.x || mhs->.pt.y != pt.y)
  {
  pt.x = pt.x - (mhs->.pt.x - pt.x).
  pt.y = pt.y - (mhs->.pt.y - pt.y).
  if (pt.x <. 0) pt.x = 0.
  if (pt.y <. 0) pt.y = 0.
  if (pt.x >.= Screen.cx) pt.x = Screen.cx - 1.
  if (pt.y >.= Screen.cy) pt.y = Screen.cy - 1.
  SetCursorPos(pt.x, pt.y).
  return TRUE.
  }
  }
  return CallNextHookEx(NextHook, nCode, wParam, lParam).
  }
  __declspec(dllexport) void StartHook()
  {
  Screen.cx = GetSystemMetrics(SM_CXSCREEN).
  Screen.cy = GetSystemMetrics(SM_CYSCREEN).
  GetCursorPos(&.pt).
  NextHook = SetWindowsHookEx(WH_MOUSE_LL, LowLevelMouseProc, Module, 0).
  }
  __declspec(dllexport) void StopHook()
  {
  UnhookWindowsHookEx(NextHook).
  }
2009年NCRE考试有新变化
2009年全国计算机等级考试-大纲
2009年上半年全国计算机等级考试报名信息汇总


相关文章


C语言开发实现的虚拟桌面程序代码计算机二级考试
C语言辅导:不定参数在C语言中的应用实例计算机二级考试
计算机二级C技巧:VC6.0控制鼠标反方向移动计算机二级考试
用C语言操作SQLserver数据库的一个奇怪现象计算机二级考试
C语言辅导:三种常见中文内码的转换方法计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛