我有这个代码来执行一个命令,在我用一个带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。
为什么,以及如何解决这个问题?
答案 0 :(得分:-1)
不知道其余的,但如果这是常规的vbscript而你的autECLSession.autECLPS
相当于WScript.CreateObject("WScript.Shell")
你的sendkeys行必须
autECLSession.autECLPS.SendKeys "{ENTER}"
编辑:在您自己编辑之后:看起来您的LigneEnCours包含一个对象而不是一个值,请尝试Regis建议或类似LigneEnCours = autECLSession.autECLPS.CursorPosRow * 1
或LigneEnCours = "" & autECLSession.autECLPS.CursorPosRow
的内容,无论哪个不会出错