Chinaunix首页 | 论坛 | 博客
  • 博客访问: 628147
  • 博文数量: 603
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-17 11:04
文章分类

全部博文(603)

文章存档

2011年(1)

2008年(602)

我的朋友

分类:

2008-09-17 11:12:39

酷 [分享] 远程桌面操作的模拟实现

1.主要思路就是先将远程桌面捕获,再发回本地,在对话框中显示出来,将本地鼠标和盘键输入,变成命令,发到远程主机执行,以模拟出鼠标和键盘的操作,再将远程桌面捕获,再发回本地,在对话框中显示出来.
2.桌面捕获关键代码:
HWND hWnd = ::GetDesktopWindow();//获得屏幕的HWND.
HDC hScreenDC = ::GetDC(hWnd); //获得屏幕的HDC.
HDC MemDC = ::CreateCompatibleDC(hScreenDC);
RECT rect;
::GetWindowRect(hWnd,&rect);
SIZE screensize;
screensize.cx=rect.right-rect.left;
screensize.cy=rect.bottom-rect.top;
hBitmap = ::CreateCompatibleBitmap(hScreenDC,screensize.cx,screensize.cy);
HGDIOBJ hOldBMP = ::SelectObject(MemDC,hBitmap);
::BitBlt(MemDC,0,0,screensize.cx,screensize.cy,hScreenDC,rect.left,rect.top,SRCCOPY);
::SelectObject(MemDC,hOldBMP);
::DeleteObject(MemDC);
::ReleaseDC(hWnd,hScreenDC);
3.鼠标左击的模拟
SetCursorPos (point.x, point.y);
mouse_event (MOUSEEVENTF_LEFTDOWN, 0,0,0,0);
mouse_event (MOUSEEVENTF_LEFTUP, 0,0,0,0);
4.A输入方法:
::keybd_event(0x61,0,0,0);
::keybd_event(0x61,0,KEYEVENTF_KEYUP,0);

5.完完整的代码请访问

[/IMG]

__________________
电脑迷


--------------------next---------------------

阅读(226) | 评论(0) | 转发(0) |
0

上一篇:上一主题

下一篇:欢迎阅读我的文章

给主人留下些什么吧!~~