2
$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() が解決策になる可能性がありますが、ファンクション キーの 10 進文字コードにはカンマ (ペア: 00,59) が含まれており、chr() は個別の引数として分割され、失敗します。

正しければ、ここで 10 進数のペアを見つけました。 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

正しい方向への助けやポイントをいただければ幸いです。

4

1 に答える 1

1

あなたが見ているキー コード リストは、キーボード スキャン コードについて話しているもので、まったく別のものであり、無関係なものです。

ファンクション キーの VT100 シーケンスは... 複雑です。F1 から F4 は通常、次のように送信されます。

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

ただし、このパターンは後続のファンクション キーには当てはまりません。より完全なリストについては、http://rtfm.etla.org/xterm/ctlseq.htmlを参照してください(「12 個のファンクション キー」を検索してください。CSIがシーケンスを表していることに注意してください\x1b[)。

于 2012-12-15T17:59:08.903 に答える