移动鼠标 - VBScript和Excel宏

时间:2011-07-07 16:13:04

标签: excel vbscript mouse css-position

找到一个使用Excel在VBScript中移动鼠标的脚本。这几乎就是我正在为我的项目寻找的东西,但是我需要改变一点点才能让我在代码中输入坐标,以便将鼠标专门移动到那些坐标;代码当前使用当前鼠标位置并从该位置移动 - 我需要能够让鼠标移动到ABSOLUTE位置,而不是RELATIVE位置。

这是VBS代码:

Option Explicit
Dim Excel, GetMessagePos, x, y, Count, Position

Set Excel = WScript.CreateObject("Excel.Application")

GetMessagePos = Excel.ExecuteExcel4Macro( _
    "CALL(""user32"",""GetMessagePos"",""J"")")
x = CLng("&H" & Right(Hex(GetMessagePos), 4))
y = CLng("&H" & Left(Hex(GetMessagePos), (Len(Hex(GetMessagePos)) - 4)))

Position = "+ 180"
Position = "- 180"
Excel.ExecuteExcel4Macro ( _
    "CALL(""user32"",""SetCursorPos"",""JJJ""," & x & " " & Position & "," & y & " " & Position & ")")

WScript.Sleep (100)
WScript.Echo "Program Ended"

根据代码,鼠标的位置从它的CURRENT POSITION +180然后-180移动。我需要改变这个代码,所以我可以把两个位置(在变量名X和Y中)并使用它们来设置鼠标指针的确切位置。

我搞乱了Excel.ExecuteExcel4Macro部分并检查了该功能的文档无济于事。你能帮忙吗?谢谢:))

编辑:我正在使用VBScript,因为我正在创建它的系统被非常锁定。我无法使用任何其他技术,所以请帮助我们!

1 个答案:

答案 0 :(得分:2)

首先,当你这样做时

Position = "+ 180"
Position = "- 180"

您首先将Position设置为“+180”,然后立即将其覆盖为“-180”。这样做没有意义。

要更具体地回答您的问题,请替换此部分:

x & " " & Position & "," & y & " " & Position

有这样的事情:

x & "," & y

在此之前,您必须说明光标的新坐标应该是什么,例如

x = "111"
y = "222"

此外,所有这些你不需要也可以删除:

GetMessagePos = Excel.ExecuteExcel4Macro( _
    "CALL(""user32"",""GetMessagePos"",""J"")")
x = CLng("&H" & Right(Hex(GetMessagePos), 4))
y = CLng("&H" & Left(Hex(GetMessagePos), (Len(Hex(GetMessagePos)) - 4)))

这就是你得到旧光标位置的地方,你不需要这个,因为你说自己不想设置相对位置。

总而言之,你的脚本应该是这样的:

Option Explicit
Dim Excel, x, y

Set Excel = WScript.CreateObject("Excel.Application")

x = "111"
y = "222"
Excel.ExecuteExcel4Macro ( _
    "CALL(""user32"",""SetCursorPos"",""JJJ""," & x & "," & y & ")")

WScript.Sleep (100)
WScript.Echo "Program Ended"