Hide cursor on remote terminal

前端 未结 4 643
-上瘾入骨i
-上瘾入骨i 2020-12-17 22:34

I have an open socket to a remote terminal. Using the answer to \"Force telnet client into character mode\" I was able to put that terminal into character mode.

My q

相关标签:
4条回答
  • 2020-12-17 22:46

    To expand upon mjh2007's answer, the following c/c++ code will implement sending the escape codes to the terminal, and is slightly more readable than raw hex numbers.

    void showCursor(bool show) const {
    #define CSI "\e["
      if (show) {
        fputs(CSI "?25h", stdout);
      }
      else {
        fputs(CSI "?25l", stdout);
      }
    #undef CSI
    }
    
    0 讨论(0)
  • 2020-12-17 22:52

    This is something that the ncurses library can do for you.

    The curs_set() function can make the cursor invisible.

    0 讨论(0)
  • 2020-12-17 23:02

    If this is using the 'telnet' application then your app should send 'IAC WILL ECHO' to disable echoing on their remote side. This is useful for entering passwords or if your app is doing the echoing.

    #define TEL_IAC "\377"
    #define TEL_WILL "\373"
    #define TEL_ECHO "\001"
    
    char buf[4];
    snprintf(buf, sizeof(buf), "%c%c%c" TEL_IAC, TEL_WILL, TEL_ECHO);
    write(sock, buf, sizeof(buf));
    

    Or

    write(sock, TEL_IAC TEL_WILL TEL_ECHO, 3);
    

    Hope this helps.

    0 讨论(0)
  • 2020-12-17 23:04

    If the terminal you are using supports ANSI format you should be able to send the following escape codes:

    Hide the cursor: 0x9B 0x3F 0x32 0x35 0x6C
    Show the cursor: 0x9B 0x3F 0x32 0x35 0x68
    
    0 讨论(0)
提交回复
热议问题