簡體   English   中英

sendkeys() 到 bloomberg 面板 python

[英]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')

我嘗試了什么:通過上面的內容,我嘗試更改任務管理器中看到的BloombergBloomberg App HostNotepad ,但我無法發送密鑰...

如何才能讓它發揮作用,或者是否有另一種有效的方法?

假設您正在嘗試使用某些腳本自動登錄 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM