如何通过ssh shell发送带有phpseclib的F1,F2,F3 ......按键

时间:2012-12-15 17:48:38

标签: php ssh phpseclib

$ssh = new Net_SSH2($address, $port);
if (!$ssh->login($user, $pass)) {
    exit('Login Failed');
}

echo "<pre>";

$ssh->setTimeout(5);
echo $ssh->read();
$ssh->write($app_name);
$ssh->write("\n \n \n b");
$ssh->write($f_one); // This is where I need to hit F1
echo $ssh->read();

我已经搜索过,发现chr()可能是我的解决方案,但功能键的decial字符代码包含一个逗号(是一对:00,59),chr()将其拆分为单独的参数并失败。

这是我发现十进制对的地方,如果它是正确的。 http://www.jimprice.com/jim-asc.shtml#keycodes

关注此主题中的帖子。 http://www.velocityreviews.com/forums/t277457-re-ascii-code-for-functions-keys-f1-f12-and-tab-key.html

非常感谢任何帮助或正确方向的观点。

1 个答案:

答案 0 :(得分:1)

您正在查看的关键代码列表是关于键盘扫描代码,这些代码完全不同且不相关。

功能键的VT100序列很复杂。 F1到F4通常按以下方式发送:

F1: \x1bOP
F2: \x1bOQ
F3: \x1bOR
F4: \x1bOS

但是,此模式对后续功能键执行保持。有关更完整的列表,请参阅http://rtfm.etla.org/xterm/ctlseq.html(搜索“12个功能键”,请注意CSI代表序列\x1b[。)