Poderosa の自動操作マクロ

Poderosa は更新が無くなってしまったので使わないと思うけど、発掘したので.

import Poderosa;
import Poderosa.ConnectionParam;
import Poderosa.Terminal;
import Poderosa.Macro;
import Poderosa.View;
import System.Drawing;
import System.Threading;

var vars = new Object();

connect("telnet-host", ConnectionMethod.Telnet, 23, EncodingType.EUC_JP, "id", "pw");
//connect("ssh-host", ConnectionMethod.SSH2, 22, EncodingType.UTF8, "id", "pw");

wait("$");
sendln("hostname");
wait("$");
sendln("date");

function connect(host, method, port, encoding, id, password) {
    vars.env = new Environment();
    if (method == ConnectionMethod.Telnet) {
        vars.param = new TelnetTerminalParam(host);
    } else {
        vars.param = new SSHTerminalParam(method, host, id, password);
    }
    vars.param.Port = port;
    vars.param.Encoding = encoding;
    vars.connection = vars.env.Connections.Open(vars.param);
    if (method == ConnectionMethod.Telnet) {
        wait("login: ");
        sendln(id);
        wait("Password: ");
        sendln(password);
    }
}

function sendln(s) {
    vars.connection.TransmitLn(s);
}

function wait(s) {
    Thread.Sleep(10);
    var r = vars.connection.ReceiveData();
    while(r.indexOf(s) == -1) {
        Thread.Sleep(10);
        r += vars.connection.ReceiveData();
    }
}