[英]sendkeys() to bloomberg panel python
我嘗試執行一個基本的sendkeys()
並打開一個已登錄的 bloomberg 面板。
我能夠驗證sendkeys()
是否適用於此:
import time
import win32com.client as comclt
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Notepad") # select another application
time.sleep(0.5) # wait for half a second
wsh.SendKeys("a") # send the keys you want
print('key is sent')
我嘗試了什么:通過上面的內容,我嘗試更改任務管理器中看到的Bloomberg
或Bloomberg App Host
的Notepad
,但我無法發送密鑰...
如何才能讓它發揮作用,或者是否有另一種有效的方法?
假設您正在嘗試使用某些腳本自動登錄 bloomberg。 我使用 vbscript 在一天中的預定時間實現此目的。
下面是我保存為.vbs文件並使用windows任務管理器執行的vb腳本
您將需要更改登錄名和密碼以匹配您的
循環的注釋部分等待 Bloomberg 聊天 window 出現。 當我在 bloomberg 上進行一些設置以在登錄時不打開聊天 window 時對此進行了評論。 - 我不記得當時到底做了什么
這只有在你有一個 bloomberg 開放式終端時才有效,該終端在登錄后不要求 otp,因為它通常在 Bloomberg Anywhere 終端上要求
在運行此腳本之前還要確保 bloomberg 應用程序已關閉/未打開
您可以使用 taskkill 命令關閉 wintrv.exe 的所有實例
taskkill /IM wintrv.exe /F
下面是vbs腳本。
set WshShell = WScript.CreateObject("WScript.Shell")
dim ret
ret = False
do while ret=False
ret = WshShell.AppActivate("BLOOMBERG: Login")
WScript.Sleep 10000
If ret = True Then
'CreateObject("WScript.Shell").PopUp "here", 5
'WshShell.AppActivate("BLOOMBERG: Login")
WScript.Sleep 3000
WshShell.SendKeys "{esc}"
WScript.Sleep 1000
WshShell.SendKeys "login~"
WScript.Sleep 10000
WshShell.SendKeys "loginname{tab}password~"
wScript.Sleep 20000
else
Call WshShell.Run("C:\blp\Wintrv\wintrv.exe")
WScript.Sleep 15000
End If
loop
'WScript.Sleep 5000
'ret=False
'do while ret=False
'ret = WshShell.AppActivate("IB - IB Manager")
'if ret=False Then
' WScript.Sleep 3000
'End If
'loop
WScript.Sleep 5000
WshShell.AppActivate("New Tab")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.