现准备开发仓储管理系统的RF(无线射频)应用。采用telnet的方式,即系统实际运行在windows的server上,RF设备通过telnet方式登录到主机,运行主机上的程序。我参考了oracle的仓库管理系统的文档,发现其mobile device的界面很不错,如下述两个链接。
http://img33.photo.163.com/vierycn/5376136/86836739.jpg
http://img33.photo.163.com/vierycn/5376136/86839078.jpg
而我实现的效果只是象dos界面一样,每输入一行后回车,自动跳转到下一个命令行,无法实现向oracle那样的操作界面,其光标可以上下移动。想请问,如何实现此种界面?是和telnet server有关吗?是否windows的telnet server不支持?

解决方案 »

  1.   

    根据转义序列向终端发控制字符
    http://guide.it168.com/files/10991/10991007006001.asp
    比如
    #27+'[A'是向上移动光标
      

  2.   

    getit911,能否提供这方面的一个例子,实在是没有头绪。谢了!
      

  3.   

    这个好像见到过,以前的BBS大概就是这样的吧,大概原理是输入命令-->服务端解析--->响应,大概跟访问网站的原理一样,点什么就回馈什么,给你一地址找点感觉: telnet bbs.nju.edu.cn
      

  4.   

    /* 新增的Ansi颜色定义字符。由 Gothic april 23,1993 */ 
    /* 注意:这些操作符是为VT100终端设计的。 */ 
    /* 在MUD中,它们可能不一定全部都能正常使用。 */ 
    #define BOLD ESC+"[1m" /* 打开粗体 */ 
    #define CLR ESC+"[2J" /* 清屏 */ 
    #define HOME ESC+"[H" /* 发送光标到原处 */ 
    #define REF CLR+HOME /* 清屏和清除光标 */ 
    #define BIGTOP ESC+"#3" /* Dbl height characters, top half */ 
    #define BIGBOT ESC+"#4" /* Dbl height characters, bottem half */ 
    #define SAVEC ESC+"[s" /* Save cursor position */ 
    #define REST ESC+"[u" /* Restore cursor to saved position */ 
    //#define REVINDEX ESC+"M" /* Scroll screen in opposite direction */ 
    #define SINGW ESC+"#5" /* Normal, single-width characters */ 
    #define DBL ESC+"#6" /* Creates double-width characters */ 
    #define FRTOP ESC+"[2;25r" /* 冻结首行 */ 
    #define FRBOT ESC+"[1;24r" /* 冻结底部一行 */ 
    #define UNFR ESC+"[r" /* 首行和底部一行解冻 */ 
    #define BLINK ESC+"[5m" /* 不断闪亮模式 */ 
    #define U ESC+"[4m" /* 下划线模式 */ 
    #define REV ESC+"[7m" /* 打开反白模式 */ 
    #define HIREV ESC+"[1,7m" /* 亮色彩反白显示 */ 控制终端光标向上
     self.AThread.Connection.Write(#27+'[A');
    反白方式输出1行,效果与你的图片是一样的
    self.AThread.Connection.Writeln(#27+'[7m'+'菜单');