【问题标题】:How to provide Focus to a Window (Excel) using Python如何使用 Python 为窗口 (Excel) 提供焦点
【发布时间】:2019-10-22 18:58:35
【问题描述】:

我需要能够通过脚本激活一个窗口(使其成为前景窗口并为其提供操作焦点)。我使用 Python 脚本自动执行 SAP。对于此模块,SAP 不会为文件执行典型的文件名和位置,而是将其输出到 Excel 中。我想将屏幕从 SAP 转移到 excel 文件,然后将其保存到一个路径和某个名称。然后我可以使用脚本的其余部分从我保存的位置操作文件。

我曾尝试使用 win32.com 客户端并查看了许多有关 SAP 和 Python 的论坛,但没有显示激活转换是如何从 SAP 到 excel 完成的。

SAP = win32com.client.GetObject('SAPGUI').GetScriptingEngine
print "T-CODE SECTION CLEAR"
session = SAP.FindByID('ses[0]')
print "T-CODE SECTION CLEAR"
xlapp = win32com.client.Dispatch("Excel.Application")


##START IP24 TRANSACTIONS
session.StartTransaction(Transaction="IP24") 
print "T-CODE SECTION CLEAR"

session.findById("wnd[0]/usr/ctxtEQUNR-LOW").text = "fcsmon*"
session.findById("wnd[0]/usr/ctxtIWERK-LOW").text = "2206"
session.findById("wnd[0]").sendVKey (8)

session.findById("wnd[0]/tbar[1]/btn[8]").press()

session.findById("wnd[0]/mbar/menu[0]/menu[5]").select()

session.findById("wnd[1]/tbar[0]/btn[0]").press()

session.findById("wnd[1]/tbar[0]/btn[0]").press()
session.findById("wnd[1]/tbar[0]/btn[0]").press()

在这些崩溃后我输入的所有行都导致无法识别代码。

【问题讨论】:

  • 我认为这样的解决方案永远不会正常工作。您无法控制第三方软件。它适用于用户 A 一周,但不适用于用户 B、C ...(其他 PC、其他配置)。下个月 Windows 发布了一个更新,Excel 行为发生了变化,它再也不能工作了......你会遇到麻烦,因为用户会说“我什么都没做。上周它工作正常。”
  • 我不一定不同意,但如果有办法使用 python 将焦点转移到活动窗口上,我用 SAP 启动它,但如何转移到 Excel 文件。

标签: python excel sap


【解决方案1】:

如果您想将某些内容保存为 excel 文件,您可以使用 csv 库

import csv with open("file", "a") as f: f = csv.writer(f, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL) f.writerow(["blablabla", "blablabla"])

【讨论】:

  • 感谢巴蒂。我能够保存我需要做的就是使弹出的 excel 文件成为 SAP 窗口中的活动窗口。
  • 你可以使用import os os.startfile('C:\\myprogram.exe')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2020-12-03
  • 2010-12-22
  • 1970-01-01
  • 2021-10-22
相关资源
最近更新 更多