高龄转行做计划,被安排做SAP的日常各种手作。
烦躁得不行,恶心得要死。
然而,姐也不是认命的人。
在一个周天下午,葛优躺中,灵光一现。
于是,查到了用python控制SAP的代码。
从此,姐又成了那个抱着咖啡杯,找人聊天的姐。
# 除了你其它用于python代码需要的库以外,以下库也将是你之后操作SAP会需要的库
# 嗯,正则嘛,我还不懂
import win32com
import sys
import win32com.client
import re
import win32api,win32gui,win32con,win32ui,os,subprocess
sap_app = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
subprocess.Popen(sap_app)
time.sleep(1) #速度慢一点,因为偶尔SAP会反应不过来
flt=0
while flt==0:
try:
hwnd = win32gui.FindWindow(None,"SAP Logon 740") #如果你的SAP升级了,那么这里你也可以换成,比如 SAP Logon 770
flt=win32gui.FindWindowEx(hwnd,None,"Edit", None)
except:
time.sleep(0.5)
win32gui.SendMessage(flt,win32con.WM_SETTEXT,None,"ERP_Production") #这里你可以搜索你要进入的SAP function
win32gui.SendMessage(flt,win32con.WM_KEYDOWN,win32con.VK_RIGHT,0)
win32gui.SendMessage(flt,win32con.WM_KEYUP,win32con.VK_RIGHT,0)
time.sleep(1)
dlg = win32gui.FindWindowEx(hwnd,None,"Button", None)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONDOWN,0)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONUP,0)
SapGuiAuto = win32com.client.GetObject("SAPGUI")
application = SapGuiAuto.GetScriptingEngine
connection = application.Children(0)
flag=0
while flag==0:
try:
session = connection.Children(0)
flag=1
except:
time.sleep(0.5)
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "你的SAP账号"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "你的SAP密码"
session.findById("wnd[0]").sendVKey(0)
本来,公司SAP没有升级的时候,这段代码(也是百度了很多地方,在此感恩百度上分享知识的各位)带给我无数欢快。
产假一回来,妈呀,升级了。额,740 到 770。
然而,不过是多sleep两下。
明天再更新了。