-1

我有这段代码来执行一个命令,在我用 VBScript 在 3270 PCOM 主机模拟器中移动到屏幕上的某一行后,我想获取当前行的位置,所以我调用:

'Save the current Line
LigneEnCours= autECLSession.autECLPS.CursorPosRow

假设光标现在位于第 7 行,所以LigneEnCours = 7

之后我执行这段代码:

'Execute a command called 'My Command' that I put in line 24 column 12
autECLSession.autECLPS.SetText <My Command>, 24, 12
autECLSession.autECLOIA.WaitForInputReady
autECLSession.autECLPS.SendKeys "[enter]"   

当我调用autECLSession.autECLPS.SetText 'My Command', 24, 12时,光标移动到第 24 行和第 12 列。因此autECLSession.autECLPS.CursorPosRow返回 24。

之后我称之为:

'Puting the cursor in the saved current line
 autECLSession.autECLOIA.WaitForInputReady 60
 autECLSession.autECLPS.SetCursorPos LigneEnCours, 2

那时,LigneEnCours 包含 24 个,而不是我预期的 7 个。

为什么,以及如何解决这个问题?

4

1 回答 1

-1

不知道其余的,但如果这是常规的 vbscript 并且你autECLSession.autECLPS的相当于WScript.CreateObject("WScript.Shell")你的 sendkeys 行必须是

autECLSession.autECLPS.SendKeys "{ENTER}"

编辑:在您自己的编辑之后:似乎您的 LigneEnCours 包含一个对象而不是一个值,请尝试 Regis 建议或类似的东西LigneEnCours = autECLSession.autECLPS.CursorPosRow * 1or LigneEnCours = "" & autECLSession.autECLPS.CursorPosRow,以不给出错误的为准

于 2017-04-25T11:03:42.210 回答