Windows Mobile 远程桌面客户端开发

在移动设备上实现远程桌面访问是提高工作效率的一种方式。Windows Mobile平台提供了这样的功能,但原生的客户端可能并不满足所有需求。本文将介绍如何编译和增强Windows Mobile上的远程桌面客户端。

编译rdesktop代码

首先,从Jay Sorg的代码开始,这是为Windows Mobile开发的原生rdesktop版本。使用Visual Studio 2005和Windows Mobile SDK,尝试编译代码。尽管在实现Windows剪贴板支持以增强客户端和服务器之间的文本传输方面遇到了一些困难,但希望有人能够加入并帮助改进代码,增加一些新功能。

rdesktop是一个开源项目,可以在这里找到Windows CE的实现。如果它不符合需求,可以选择自己修改代码(并发布修改后的版本)或者找到能够帮助修改的人。

在当前的rdesktop源代码中,有一个名为uiports/xxxwin.c的模板,可以用它作为起点来编译适用于Windows Mobile的rdesktop版本,只要能解决所有的依赖问题。如果成功了,别忘了告诉,并使用这个版本(也许可以给留个便条?)。

为什么需要另一个远程桌面/终端服务器客户端?

Windows Mobile的远程桌面客户端(或称为RDM)缺少一些在Windows CE版本或桌面Windows版本中可用的有用功能:

  • 没有自动登录
  • 没有Kiosk模式
  • 功能键不会发送到服务器

第一项功能对于希望在没有用户干预的情况下启动终端服务器会话的人来说至关重要。第二项功能对于在生产环境中使用RDM很重要。第三项功能对于在终端服务器上运行使用功能键的应用程序很有用。

商业RDM客户端

市面上有一些商业远程桌面客户端可供Windows Mobile使用:

  • Mochasoft RDP客户端
  • zaDesktop
  • RDP Finster

这些商业客户端可能使用了mstscax或rdesktop代码。微软曾经发布了RDP文档,也许商业应用就是从那里开始的。如果有人有这个库的文档,请留言。然后可以开始编写一个围绕这个库的TSC。

使用开源rdesktop-ce

可以在Windows Mobile上启动winrdesktop,使用ini文件或命令行参数:

[ main ] server=192.168.128.5 port=3389 username=YourUserName password=YourPassword bpp=16 geometry=1024x768 #fullscreen

参数说明:

  • server: 提供服务器IP或DNS主机名
  • port: 提供用于RDP的端口,通常是3389
  • username: 提供终端客户端会话的登录用户名
  • password: 提供用户的密码
  • bpp: 定义使用的每像素位数(每像素颜色数)
  • geometry: 定义远程桌面窗口的宽度x高度

应用程序应与Windows Mobile设备的屏幕尺寸相匹配。例如240×320(QVGA)。否则,用户需要滚动窗口才能访问所有远程屏幕。

WinRDesktop [-g widthxheight] [-t port] [-a bpp] [-f] [-u username] [-p password] [-d domain] [-s shell] [-c working directory] [-n host name] server-name-or-ip

选项与winrdesktop.ini中的相同,另外还有:

  • -d domain: 指定用户登录的域
  • -s shell: 定义在TSC上使用的shell
  • -c working directory: 定义会话的工作目录
  • -n host name: 指定客户端使用的主机名(在TSC上可见)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485