public override void InitializePlugin(IPoderosaWorld poderosa) { base.InitializePlugin(poderosa); _instance = this; IPluginManager pm = poderosa.PluginManager; _coreServices = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices)); _terminalEmulatorPlugin = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); Debug.Assert(_terminalEmulatorPlugin != null); TerminalUICommand.Register(_coreServices.CommandManager); TerminalUIMenuGroup uimenu = new TerminalUIMenuGroup(); LogMenuGroup logmenu = new LogMenuGroup(); //Console Menu IExtensionPoint consolemenu = pm.FindExtensionPoint("org.poderosa.menu.console"); consolemenu.RegisterExtension(uimenu); consolemenu.RegisterExtension(logmenu); IExtensionPoint contextmenu = pm.FindExtensionPoint("org.poderosa.terminalemulator.contextMenu"); contextmenu.RegisterExtension(uimenu); contextmenu.RegisterExtension(logmenu); IExtensionPoint documentContextMenu = pm.FindExtensionPoint("org.poderosa.terminalemulator.documentContextMenu"); documentContextMenu.RegisterExtension(uimenu); documentContextMenu.RegisterExtension(logmenu); IExtensionPoint toolmenu = pm.FindExtensionPoint("org.poderosa.menu.tool"); toolmenu.RegisterExtension(new ShellSchemeEditMenuGroup()); }
/// <summary> /// Constructor /// </summary> /// <param name="poderosa">an instance of PoderosaWorld</param> public override void InitializePlugin(IPoderosaWorld poderosa) { base.InitializePlugin(poderosa); _instance = this; _poderosaWorld = poderosa; _adapterManager = poderosa.AdapterManager; _coreServices = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices)); _stringResource = new StringResource("Poderosa.Pipe.strings", typeof(PipePlugin).Assembly); poderosa.Culture.AddChangeListener(_stringResource); _terminalSessionsService = poderosa.PluginManager.FindPlugin("org.poderosa.terminalsessions", typeof(ITerminalSessionsService)) as ITerminalSessionsService; _terminalEmulatorService = poderosa.PluginManager.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)) as ITerminalEmulatorService; _serializeService = poderosa.PluginManager.FindPlugin("org.poderosa.core.serializing", typeof(ISerializeService)) as ISerializeService; IExtensionPoint extSer = _coreServices.SerializerExtensionPoint; extSer.RegisterExtension(new PipeTerminalParameterSerializer()); extSer.RegisterExtension(new PipeTerminalSettingsSerializer()); _openPipeCommand = new OpenPipeCommand(); IPluginManager pm = poderosa.PluginManager; pm.FindExtensionPoint("org.poderosa.menu.file").RegisterExtension(new PipeMenuGroup(_openPipeCommand)); // Toolbar button has not been added yet //pm.FindExtensionPoint("org.poderosa.core.window.toolbar").RegisterExtension(new PipeToolBarComponent()); pm.FindExtensionPoint("org.poderosa.termianlsessions.terminalConnectionFactory").RegisterExtension(new PipeConnectionFactory()); }
/// <summary> /// Start benchmark /// </summary> /// <returns></returns> public CommandResult Start() { GC.Collect(); GC.WaitForPendingFinalizers(); ITerminalEmulatorService emulatorService = BenchmarkPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)) as ITerminalEmulatorService; ITerminalSessionsService sessionService = (ITerminalSessionsService)BenchmarkPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.terminalsessions", typeof(ITerminalSessionsService)); if (emulatorService == null || sessionService == null) { return(CommandResult.Ignored); } ITerminalSettings settings = emulatorService.CreateDefaultTerminalSettings(GetTerminalCaption(), null); settings.BeginUpdate(); settings.Encoding = Poderosa.ConnectionParam.EncodingType.UTF8; settings.EndUpdate(); ITerminalConnection connection = GetTerminalConnection(); ITerminalSessionStartCommand startCommand = sessionService.TerminalSessionStartCommand; ITerminalSession session = startCommand.StartTerminalSession(_target, connection, settings); StartBenchmarkThread(emulatorService.TerminalEmulatorOptions, session); return(CommandResult.Succeeded); }
/// <summary> /// Initiates the SSH connection process by getting the <see cref="IProtocolService"/> instance and calling /// <see cref="IProtocolService.AsyncSSHConnect"/>. This is an asynchronous process: the <see cref="SuccessfullyExit"/> method is called when the /// connection is established successfully and <see cref="ConnectionFailed"/> method is called when we are unable to establish the connection. /// </summary> public void AsyncConnect() { ITerminalEmulatorService terminalEmulatorService = (ITerminalEmulatorService)_poderosaWorld.PluginManager.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); IProtocolService protocolService = (IProtocolService)_poderosaWorld.PluginManager.FindPlugin("org.poderosa.protocols", typeof(IProtocolService)); // Create and initialize the SSH login parameters ISSHLoginParameter sshLoginParameter = protocolService.CreateDefaultSSHParameter(); sshLoginParameter.Account = Username; if (!String.IsNullOrEmpty(IdentityFile)) { sshLoginParameter.AuthenticationType = AuthenticationType.PublicKey; sshLoginParameter.IdentityFileName = IdentityFile; } else { sshLoginParameter.AuthenticationType = AuthenticationType.Password; if (Password != null && Password.Length > 0) { IntPtr passwordBytes = Marshal.SecureStringToGlobalAllocAnsi(Password); sshLoginParameter.PasswordOrPassphrase = Marshal.PtrToStringAnsi(passwordBytes); } } sshLoginParameter.Method = (SSHProtocol)Enum.Parse(typeof(SSHProtocol), SshProtocol.ToString("G")); // Create and initialize the various socket connection properties ITCPParameter tcpParameter = (ITCPParameter)sshLoginParameter.GetAdapter(typeof(ITCPParameter)); tcpParameter.Destination = HostName; tcpParameter.Port = Port; // Set the UI settings to use for the terminal itself terminalEmulatorService.TerminalEmulatorOptions.RightButtonAction = MouseButtonAction.Paste; _settings = terminalEmulatorService.CreateDefaultTerminalSettings(tcpParameter.Destination, null); _settings.BeginUpdate(); _settings.TerminalType = (ConnectionParam.TerminalType)Enum.Parse(typeof(ConnectionParam.TerminalType), TerminalType.ToString("G")); _settings.RenderProfile = terminalEmulatorService.TerminalEmulatorOptions.CreateRenderProfile(); _settings.RenderProfile.BackColor = BackColor; _settings.RenderProfile.ForeColor = ForeColor; _settings.RenderProfile.FontName = Font.Name; _settings.RenderProfile.FontSize = Font.Size; _settings.EndUpdate(); ITerminalParameter param = (ITerminalParameter)tcpParameter.GetAdapter(typeof(ITerminalParameter)); param.SetTerminalName(_settings.TerminalType.ToString("G").ToLower()); // Initiate the connection process protocolService.AsyncSSHConnect(this, sshLoginParameter); }
static SshConnectionForm() { PoderosaApplication = (IPoderosaWorld)PoderosaStartup.CreatePoderosaApplication(new string[] {}); PoderosaApplication.InitializePlugins(); IRootExtension preferencesPlugin = (IRootExtension)PoderosaApplication.PluginManager.FindPlugin("org.poderosa.core.preferences", typeof(IPreferences)); preferencesPlugin.InitializeExtension(); PoderosaProtocolService = (IProtocolService)PoderosaApplication.PluginManager.FindPlugin("org.poderosa.protocols", typeof(IProtocolService)); PoderosaTerminalEmulatorService = (ITerminalEmulatorService)PoderosaApplication.PluginManager.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); PoderosaSessionManagerPlugin = (SessionManagerPlugin)PoderosaApplication.PluginManager.FindPlugin("org.poderosa.core.sessions", typeof(ISessionManager)); PoderosaTerminalEmulatorService.TerminalEmulatorOptions.RightButtonAction = MouseButtonAction.Paste; }
private static CommandResult LoopbackTerminalCommand(ICommandTarget target) { IPluginManager pm = SessionTestPlugin.Instance.PoderosaWorld.PluginManager; IProtocolTestService ps = (IProtocolTestService)pm.FindPlugin("org.poderosa.protocols", typeof(IProtocolTestService)); ITerminalSessionStartCommand s = ((ITerminalSessionsService)pm.FindPlugin("org.poderosa.terminalsessions", typeof(ITerminalSessionsService))).TerminalSessionStartCommand; ITerminalEmulatorService es = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); ITerminalSettings ts = es.CreateDefaultTerminalSettings("LOOPBACK", null); //改行はCRLFがいいっすね ts.BeginUpdate(); ts.TransmitNL = Poderosa.ConnectionParam.NewLine.CRLF; ts.EndUpdate(); s.StartTerminalSession(target, ps.CreateLoopbackConnection(), ts); return(CommandResult.Succeeded); }
public override void InitializePlugin(IPoderosaWorld poderosa) { base.InitializePlugin(poderosa); _instance = this; _stringResource = new StringResource("Poderosa.XZModem.strings", typeof(XZModemPlugin).Assembly); poderosa.Culture.AddChangeListener(_stringResource); IPluginManager pm = poderosa.PluginManager; _coreServices = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices)); _terminalEmulatorService = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); _startXZModemCommand = new StartXZModemCommand(); _coreServices.CommandManager.Register(_startXZModemCommand); IExtensionPoint consolemenu = pm.FindExtensionPoint(TerminalEmulatorConstants.TERMINALSPECIAL_EXTENSIONPOINT); consolemenu.RegisterExtension(new XZModemMenuGroup()); }
/// <summary> /// コンストラクタ /// </summary> public override void InitializePlugin(IPoderosaWorld poderosa) { base.InitializePlugin(poderosa); _instance = this; // 文字列リソース読み込み _stringResource = new Poderosa.StringResource("Contrib.ConnectProfile.strings", typeof(ConnectProfilePlugin).Assembly); ConnectProfilePlugin.Instance.PoderosaWorld.Culture.AddChangeListener(_stringResource); // コマンド登録 IPluginManager pm = poderosa.PluginManager; _coreServices = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices)); _terminalEmulatorPlugin = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); ConnectProfileCommand.Register(_coreServices.CommandManager); // メニューリスト作成 ConnectProfileMenuGroup menulist = new ConnectProfileMenuGroup(); ConnectProfileContextMenuGroup contextmenulist = new ConnectProfileContextMenuGroup(); // メニュー登録 IExtensionPoint toolmenu = pm.FindExtensionPoint("org.poderosa.menu.tool"); toolmenu.RegisterExtension(menulist); // コンテキストメニュー登録 IExtensionPoint contextmenu = pm.FindExtensionPoint("org.poderosa.terminalemulator.contextMenu"); contextmenu.RegisterExtension(contextmenulist); // 設定ファイル連携 _connectProfileOptionSupplier = new ConnectProfileOptionsSupplier(); _coreServices.PreferenceExtensionPoint.RegisterExtension(_connectProfileOptionSupplier); // 接続プロファイル _profiles = new ConnectProfileList(); }