RECT Rect;
  int bLock;
  POINT cursorNew;
  
  Rect.left=550;//设置锁定区域大小;
  Rect.top=470;
  Rect.right=590;
  Rect.bottom=480;
  bLock=ClipCursor(&Rect); // 限制鼠标移动区域
  GetCursorPos(&cursorNew);//得到当前鼠标的位置;
  mouse_event(MOUSEEVENTF_LEFTDOWN,cursorNew.x,cursorNew.y,0,0); 
  mouse_event(MOUSEEVENTF_LEFTUP,cursorNew.x,cursorNew.y,0,0); 
  mouse_event(MOUSEEVENTF_LEFTDOWN,cursorNew.x,cursorNew.y,0,0); 
  mouse_event(MOUSEEVENTF_LEFTUP,cursorNew.x,cursorNew.y,0,0); 
  keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下CTRL键。 
  keybd_event(0x43,MapVirtualKey(0x43,0),0,0);//键下c键。  
  keybd_event(0x43,MapVirtualKey(0x43,0), KEYEVENTF_KEYUP,0);//放开c键。  
  keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);//放开CTRL键
  HWND hWnd = GetSafeHwnd(); // 获取安全窗口句柄
  ::OpenClipboard(hWnd); // 打开剪贴板
  HANDLE hClipMemory = ::GetClipboardData(CF_TEXT);// 获取剪贴板数据句柄
  DWORD dwLength = GlobalSize(hClipMemory); // 返回指定内存区域的当前大小
  LPBYTE lpClipMemory = (LPBYTE)GlobalLock(hClipMemory); // 锁定内存
  MessageBox(CString(lpClipMemory)); // 保存得到的文本数据
  GlobalUnlock(hClipMemory); // 内存解锁
  ::CloseClipboard(); // 关闭剪贴板

解决方案 »

  1.   

    嘿嘿,人笨办法更笨,因为取内容的程序对话框是vfp做的,用判断edit类也找不到这个编辑框,所以我每次取值都让鼠标限制在这个区域,然后让鼠标自动双击以选中编辑框内文字,再模拟执行ctrl+C复制内容,但是取的的文本数据老是上一次的拷贝内容,不过在别的象word里直接粘贴又是本次复制的内容,如何能正确得到本次复制的内容呢?
      

  2.   

    获得剪贴板内容有专门的api的
    GetClipboardData()
    自己看MSDN吧
      

  3.   

    请问你的问题怎么解决的? 请告诉我一下.
    [email protected]
      

  4.   

    SetClipboardData函数小三的blog上有一篇文章,不妨看看:
    http://blog.csdn.net/lixiaosan/archive/2006/04/14/663477.aspx