对话框反应迟钝与Windows脚本宿主(蟒蛇)

问题描述:

我想修改下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

这个问题曾与不正确执行这个软件的开发的一部分来做。为了解决这个问题,我使用SendKeys发送了多个TABS,直到选择了File

在发送“F”之前,您必须等待对话框出现。

试试这个:

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

这似乎是可行的,但不幸的是,我试过这个它没有。也许我需要一种让孩子“打印设置”窗口成为焦点的方式,即使手动运行键盘快捷键时,它仍然是焦点。 – jaynp

+0

然后问题应该与'shell.AppActivate('销售点')',尝试'记事本'。 – ATOzTOA

+0

AppActivate只是将窗口放在焦点上。我不认为这是错误的根源。使用记事本,我可以在一个字符串''shell.SendKeys(“%fs%fMargins”)中执行多个操作'' – jaynp