2013-01-14 45 views
2

我想修改下File > Print Setup.對話框反應遲鈍與Windows腳本宿主(蟒蛇)

發現我使用Windows腳本宿主與Python的打印設置選項。我用的是Alt + F隨後S打開相應的對話框:

Print Setup

當我做手工的命令,打印設置框是重點,所以我可以按F選擇「打印到文件「然後{ENTER}O接受更改。

但是,我既沒有ALT+F也沒有F正在選擇文件選項。

shell = win32com.client.Dispatch("WScript.Shell") 
shell.AppActivate('Point of Sale') 
shell.SendKeys("%fs") # I also tried "%fsf and "%fs%f" removing the other call to SendKeys" 
time.sleep(0.1) # Removing this (or using a longer wait) makes no difference 
shell.SendKeys("F") 
+0

如果您發送'%f',等待併發送's',該怎麼辦? S或ALT + F大小寫是否敏感? (如果按下shift鍵,這是否重要?) –

+0

@NickODell在'%f'和's'之間插入等待,不執行s命令。這些命令不區分大小寫;他們以任何方式工作。 – jaynp

+0

不,這是一個python腳本。 – jaynp

回答

0

這個問題曾與不正確執行這個軟件的開發的一部分來做。爲了解決這個問題,我使用SendKeys發送了多個TABS,直到選擇了File

0

在發送「F」之前,您必須等待對話框出現。

試試這個:

shell.SendKeys("%fs") 
time.sleep(.25) 
shell.SendKeys("f") 
+0

這似乎是可行的,但不幸的是,我試過這個它沒有。也許我需要一種讓孩子「打印設置」窗口成爲焦點的方式,即使手動運行鍵盤快捷鍵時,它仍然是焦點。 – jaynp

+0

然後問題應該與'shell.AppActivate('銷售點')',嘗試'記事本'。 – ATOzTOA

+0

AppActivate只是將窗口放在焦點上。我不認爲這是錯誤的根源。使用記事本,我可以在一個字符串''shell.SendKeys(「%fs%fMargins」)中執行多個操作'' – jaynp