Masquer le curseur sur le terminal distant

J’ai une prise ouverte sur un terminal distant. En utilisant la réponse à ” Forcer le client telnet en mode caractère “, j’ai pu mettre ce terminal en mode caractère.

Ma question est la suivante: comment masquer le curseur dans le terminal distant avec cette méthode?

C’est quelque chose que la bibliothèque ncurses peut faire pour vous.

La fonction curs_set() peut rendre le curseur invisible.

Pour développer la réponse de mjh2007, le code c / c ++ suivant implémentera l’envoi des codes d’échappement au terminal et est légèrement plus lisible que les nombres hexadécimaux bruts.

 void showCursor(bool show) const { #define CSI "\e[" if (show) { fputs(CSI "?25h", stdout); } else { fputs(CSI "?25l", stdout); } #undef CSI } 

Si le terminal que vous utilisez prend en charge le format ANSI, vous devriez pouvoir envoyer les codes d’échappement suivants:

 Masquer le curseur: 0x9B 0x3F 0x32 0x35 0x6C
 Afficher le curseur: 0x9B 0x3F 0x32 0x35 0x68

Si cela utilise l’application ‘telnet’, votre application doit alors envoyer ‘IAC WILL ECHO’ pour désactiver l’écho de leur côté distant. Ceci est utile pour la saisie de mots de passe ou si votre application effectue l’écho.

 #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)); 

Ou

 write(sock, TEL_IAC TEL_WILL TEL_ECHO, 3); 

J’espère que cela t’aides.