Tag: Poderosa

マクロ

var param = new TelnetTerminalParam(host);
var prof = new RenderProfile();

//
prof.FontSize = 9;
//
prof.FontName = "";
prof.JapaneseFontName = "";
//
prof.SetBackColor(Color.White);
//
prof.SetForeColor(Color.Black);

//
var escape = new EscapesequenceColorSet();
//
escape.Load("Black,Red,Green,ff808000,Blue,Magenta,ff33cccc,White");
prof.ESColorSet = escape;

//
param.RenderProfile = prof;

//
param.TransmitNL = NewLine.LF;

//
param.Encoding = EncodingType.UTF8;

//
param.Caption = "aaa";
  • SSHの接続はこんな感じ
  • ヘルプにはPort22固定みたいに書いてあったけど、Portプロパティの設定でいけるぽい
        var param = new SSHTerminalParam(ConnectionMethod.SSH2, host, account, password);
    
        param.Port = port;

マクロにショートカットを割り当てる

  1. Coreフォルダ内のPoderosa.Core.*ファイルをリネーム等でバックアップする
  2. 添付のfilepoderosa.core.zipを解凍してCoreフォルダ内に入れる
  3. マクロのタイトルの先頭にショートカットで割り当てる文字を[]で囲んで入れる
  4. マクロメニューでショートカットが割り当てられていることを確認する

改造内容

  • Poderosa使ってる奴いる?379ソース
    $ diff MenuUtil.cs MenuUtil.cs.org
    14d13
    < using System.Text.RegularExpressions;
    100,108c99
    <                     if (gc != null) mi.ShortcutKeyDisplayString = WinFormsUtil.FormatShortcut(CommandManagerPlugin.Instance.CurrentKeyBinds.GetKey(gc));
    <                     Regex s = new Regex(@"^\[([A-Z1-9])\]");
    <                     if (s.IsMatch(leaf.Text))
    <                     {
    <                         Match ma = s.Match(leaf.Text);
    <                         KeysConverter kc = new KeysConverter();
    <                         String sk = "Control+Alt+" + ma.Groups[1].Value;
    <                         mi.ShortcutKeys = (Keys)kc.ConvertFromString(sk);
    <                     }
    ---
    >                     if(gc!=null) mi.ShortcutKeyDisplayString = WinFormsUtil.FormatShortcut(CommandManagerPlugin.Instance.CurrentKeyBinds.GetKey(gc));

マクロを中断できるようにする

  1. Macroフォルダ内のPoderosa.Macro.*をリネーム等でバックアップする
  2. 添付のfilepoderosa.macro.zipを解凍してMacroフォルダ内に入れる

改造内容

  • マクロ実行中に別のマクロを実行したら中断できるようにする
    $ diff -r MacroModule.cs MacroModule.cs.org
    182,187c182
    <                 if (GUtil.AskUserYesNo(parent, sr.GetString("Message.MacroModule.AskStopMacro")) == DialogResult.Yes) {
    <                     MacroManager mm = MacroPlugin.Instance.MacroManager;
    <                     mm.StopMacro();
    <                 //} else {
    <                       //      GUtil.Warning(parent, sr.GetString("Message.MacroModule.AlreadyRunning"));
    <                 }
    ---
    >                               GUtil.Warning(parent, sr.GetString("Message.MacroModule.AlreadyRunning"));
  • ダイアログのメッセージ(英語)
    $ diff strings.resx strings.resx.org 
    259,262c259
    <   <data name="Message.MacroModule.AskStopMacro" xml:space="preserve">
    <     <value>Another macro is currently executing. Do you stop executing macro?</value>
    <   </data>
    < </root>
    ---
    > </root>
    • XMLがオリジナルと若干違ったので変更箇所がわかるように加工したものとdiff
    • 文章が正しいかは知らない
  • ダイアログのメッセージ(日本語)
    $ diff strings_ja.resx strings_ja.resx.org 
    260,263c260
    <   <data name="Message.MacroModule.AskStopMacro" xml:space="preserve">
    
    <   </data>
    < </root>
    ---
    > </root>
    • XMLがオリジナルと若干違ったので変更箇所がわかるように加工したものとdiff

iso-2022-jp非対応にする

  1. TerminalEmulatorフォルダ内のPoderosa.TerminalEmulator.*ファイルをリネーム等でバックアップする
  2. 添付のfilepoderosa.terminalemulator.zipを解凍してTerminalEmulatorフォルダ内に入れる

改造内容

$ diff CharDecoder.cs CharDecoder.cs.org 
91c91
<                               //if(_state==State.Normal && !IsControlChar(b) && _encoding.IsInterestingByte(b)) {
---
>                               if(_state==State.Normal && !IsControlChar(b) && _encoding.IsInterestingByte(b)) {
93,150c93,150
<                               //}
<                               //else {
<                               //    switch(_state) {
<                               //        case State.Normal:
<                               //            if(b==0x1B) //ESC
<                               //                _state = State.ESC;
<                               //            else if(b==14) //SO
<                               //                ChangeProcessor(_G1ByteProcessor);
<                               //            else if(b==15) //SI
<                               //                ChangeProcessor(_G0ByteProcessor);
<                               //            else
<                               //                ConsumeByte(b);
<                               //            break;
<                               //        case State.ESC:
<                               //            if(b==(byte)'$')
<                               //                _state = State.ESC_DOLLAR;
<                               //            else if(b==(byte)'(')
<                               //                _state=State.ESC_BRACKET;
<                               //            else if(b==(byte)')')
<                               //                _state=State.ESC_ENDBRACKET;
<                               //            else {
<                               //                ConsumeByte(0x1B);
<                               //                ConsumeByte(b);
<                               //                _state = State.Normal;
<                               //            }
<                               //            break;
<                               //        case State.ESC_BRACKET:
<                               //            if(b==(byte)'0')
<                               //                _G0ByteProcessor = _DECLineByteProcessor;
<                               //            else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!lessssh2architecture.txt
<                               //                _G0ByteProcessor = null;
<                               //            else
<                               //                _processor.UnsupportedCharSetDetected((char)b);
<                               //            ChangeProcessor(_G0ByteProcessor);
<                               //            break;
<                               //        case State.ESC_ENDBRACKET:
<                               //            if(b==(byte)'0')
<                               //                _G1ByteProcessor = _DECLineByteProcessor;
<                               //            else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!lessssh2architecture.txt
<                               //                _G1ByteProcessor = null;
<                               //            _state = State.Normal;
<                               //            break;
<                               //        case State.ESC_DOLLAR:
<                               //            if(b==(byte)'B' || b==(byte)'@') {
<                               //                ChangeProcessor(_iso2022jpByteProcessor);
<                               //            }
<                               //            else {
<                               //                _processor.ProcessChar((char)0x1B);
<                               //                _processor.ProcessChar('$');
<                               //                _processor.ProcessChar((char)b);
<                               //                _state = State.Normal;
<                               //            }
<                               //            break;
<                               //        default:
<                               //            Debug.Assert(false, "unexpected state transition");
<                               //            break;
<                               //    }
<                               //}
---
>                               }
>                               else {
>                                       switch(_state) {
>                                               case State.Normal:
>                                                       if(b==0x1B) //ESC
>                                                               _state = State.ESC;
>                                                       else if(b==14) //SO
>                                                               ChangeProcessor(_G1ByteProcessor);
>                                                       else if(b==15) //SI
>                                                               ChangeProcessor(_G0ByteProcessor);
>                                                       else
>                                                               ConsumeByte(b);
>                                                       break;
>                                               case State.ESC:
>                                                       if(b==(byte)'$')
>                                                               _state = State.ESC_DOLLAR;
>                                                       else if(b==(byte)'(')
>                                                               _state=State.ESC_BRACKET;
>                                                       else if(b==(byte)')')
>                                                               _state=State.ESC_ENDBRACKET;
>                                                       else {
>                                                               ConsumeByte(0x1B);
>                                                               ConsumeByte(b);
>                                                               _state = State.Normal;
>                                                       }
>                                                       break;
>                                               case State.ESC_BRACKET:
>                                                       if(b==(byte)'0')
>                                                               _G0ByteProcessor = _DECLineByteProcessor;
>                                                       else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!lessssh2architecture.txt
>                                                               _G0ByteProcessor = null;
>                                                       else
>                                                               _processor.UnsupportedCharSetDetected((char)b);
>                                                       ChangeProcessor(_G0ByteProcessor);
>                                                       break;
>                                               case State.ESC_ENDBRACKET:
>                                                       if(b==(byte)'0')
>                                                               _G1ByteProcessor = _DECLineByteProcessor;
>                                                       else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!lessssh2architecture.txt
>                                                               _G1ByteProcessor = null;
>                                                       _state = State.Normal;
>                                                       break;
>                                               case State.ESC_DOLLAR:
>                                                       if(b==(byte)'B' || b==(byte)'@') {
>                                                               ChangeProcessor(_iso2022jpByteProcessor);
>                                                       }
>                                                       else {
>                                                               _processor.ProcessChar((char)0x1B);
>                                                               _processor.ProcessChar('$');
>                                                               _processor.ProcessChar((char)b);
>                                                               _state = State.Normal;
>                                                       }
>                                                       break;
>                                               default:
>                                                       Debug.Assert(false, "unexpected state transition");
>                                                       break;
>                                       }
>                               }

添付ファイル: filepoderosa.terminalemulator.zip 447件 [詳細] filepoderosa.macro.zip 1029件 [詳細] filepoderosa.core.zip 682件 [詳細]

Last-modified: 2010-12-17 (金) 10:54:55 (2553d)