2013-01-20 72 views
0

試圖通過嚮應用程序發送擊鍵來自動生成報告。 我可以將應用程序轉發,但它會忽略所有SendKeys命令。 問題是什麼?接下來我應該嘗試什麼? 這是我的代碼:應用程序忽略VBS SendKeys

Const App_Title = "AccountRight Plus" ' Window title 
    Dim Wsh, win_title 
    ' Create the WshShell object, which Run and AppActivate require. 
    Set Wsh = WScript.CreateObject("WScript.Shell") 
    Wsh.AppActivate App_Title 
    WScript.Sleep 800 
    Wsh.SendKeys "^i" 
    WScript.Sleep 800 
    Wsh.SendKeys "{TAB}" 
    WScript.Sleep 800 
    Wsh.SendKeys "{TAB}" 

回答

0

也許你有混淆,大寫鎖定鍵和中風「^ I」。無論如何,只是假設。如果情況並非如此,那麼至少不要評判我。

所以我做了一個代碼,我可以在這裏測試,解釋我的意思。

Set Wsh = WScript.CreateObject("WScript.Shell") 
Wsh.Run "notepad" 
Wsh.AppActivate "Untitled - Notepad" 
WScript.Sleep 100 
Wsh.SendKeys "111..." 
WScript.Sleep 100 
Wsh.SendKeys "^a" ' (ctrl+a) Select All command 

如果碰巧大寫鎖定鍵是關閉的,上面的代碼將選擇所有文字,但中風「^ A」(甚至「^(一)」),如果大寫鎖定就會失敗是。與此相反,如果使用「^ A」,將失敗並鎖定大寫字母。

有沒有辦法讓大寫鎖定(或其他鍵)在VBScript,但我發現2個變通的狀態,叫他們欺騙,如果你喜歡:)

  1. 有點怪異的路要走,是複製您的SendKeys命令。

    Wsh.SendKeys 「^一個」:Wsh.SendKeys 「^一個」

  2. 要發送衝程到帽子提前鎖定。

    Wsh.SendKeys 「{CAPSLOCK}」:Wsh.SendKeys 「^一個」

+0

感謝您嘗試:-) 我想你的建議,但仍然沒有結果。 – Nushi