public async override Task RunCommand(object sender) { var engine = (IAutomationEngineInstance)sender; int mouseX = 0, mouseY = 0; if (!string.IsNullOrEmpty(v_XMousePosition)) { mouseX = (int)await v_XMousePosition.EvaluateCode(engine); } if (!string.IsNullOrEmpty(v_YMousePosition)) { mouseY = (int)await v_YMousePosition.EvaluateCode(engine); } var terminalContext = (BZTerminalContext)((OBAppInstance)await v_InstanceName.EvaluateCode(engine)).Value; if (terminalContext.BZTerminalObj == null || !terminalContext.BZTerminalObj.Connected) { throw new Exception($"Terminal Instance {v_InstanceName} is not connected."); } BZ3270Keys selectedKey = (BZ3270Keys)Enum.Parse(typeof(BZ3270Keys), v_TerminalKey); string selectedKeyValue = BZTerminalKeysDict[selectedKey]; if (!string.IsNullOrEmpty(v_XMousePosition) && !string.IsNullOrEmpty(v_YMousePosition)) { terminalContext.BZTerminalObj.SetCursor(mouseY, mouseX); } terminalContext.BZTerminalObj.SendKey(selectedKeyValue); terminalContext.BZTerminalObj.WaitForReady(); }
public override void RunCommand(object sender) { var engine = (IAutomationEngineInstance)sender; var mouseX = v_XMousePosition.ConvertUserVariableToString(engine); var mouseY = v_YMousePosition.ConvertUserVariableToString(engine); var terminalContext = (BZTerminalContext)v_InstanceName.GetAppInstance(engine); if (terminalContext.BZTerminalObj == null || !terminalContext.BZTerminalObj.Connected) { throw new Exception($"Terminal Instance {v_InstanceName} is not connected."); } BZ3270Keys selectedKey = (BZ3270Keys)Enum.Parse(typeof(BZ3270Keys), v_TerminalKey); string selectedKeyValue = BZTerminalKeysDict[selectedKey]; if (!string.IsNullOrEmpty(mouseX) && !string.IsNullOrEmpty(mouseY)) { terminalContext.BZTerminalObj.SetCursor(int.Parse(mouseY), int.Parse(mouseX)); } terminalContext.BZTerminalObj.SendKey(selectedKeyValue); terminalContext.BZTerminalObj.WaitForReady(); }