2011-07-07 63 views
2

找到了一個使用Excel在VBScript中移動鼠標的腳本。這幾乎正​​是我在爲我的項目尋找的東西,但是我需要稍微改變一下,使我能夠在代碼中輸入座標,以便將鼠標專門移動到這些座標;該代碼當前使用當前鼠標位置並從該位置移動 - 我需要能夠將鼠標移動到絕對位置,而不是相對位置。移動鼠標 - VBScript和Excel宏

這裏的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" 

根據該代碼,鼠標的位置被移離它的當前位置180然後-180。我需要更改此代碼,以便我可以放置兩個位置(以變量名稱X和Y)並使用它們來設置鼠標指針的確切位置。

我已經搞砸了Excel.ExecuteExcel4Macro部分,並檢查出功能的文檔無濟於事。請你幫忙嗎?謝謝:)

編輯:我使用VBScript,因爲我創建此係統是非常鎖定。我沒有辦法使用任何其他技術吧,所以幫助將不勝感激!

回答

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" 
+0

很好的解釋,這正是我需要的。非常感謝! – Jimbo