如何使用Python自动登录IBM System ?



我需要使用Python登录IBM I System,而无需手动输入用户名和密码。

我使用py3270库,但它无法检测模拟器wc3270。我使用的模拟器具有.hod扩展名,并以IBM I Launcher打开。有人能帮我一下吗?可能的解决方案是什么?

os.system()是一个阻塞语句。也就是说,它会阻塞或停止Python代码的进一步执行,直到os.system()所做的工作完成。这个问题需要我们生成一个单独的线程,以便执行ACS软件的Windows进程与其他Python代码同时运行。subprocess是一个可以处理此操作的Python库。

下面是一些打开ACS 5250终端窗口并将用户和密码推送到该窗口的代码。没有错误检查,并且我的系统假定了一些关于ACS的设置细节,而您的系统可能没有。

#各种print()语句是用来查看幕后的导入系统导入的时间导入子流程从pywinauto。应用导入进口pywinauto。键盘作为键盘Userid = sys.argv[1]Password = sys.argv[2]打印("ACS"开头)cmd = r"C:UsersPublicIBMClientSolutionsStart_ProgramsWindows_x86-64acslaunch_win-64.exe"system= r'/system="您的系统名称或IP地址在这里"'# Popen要求命令与每个参数分开,所以是一个数组Result =子进程。Popen([cmd, r"/plugin=5250",system], shell=True)打印(结果)#至少等待足够长的时间,让Windows通过启动画面打印("ACS启动-暂停")time . sleep (5)打印("连接到Windows进程")ACS = Application().connect(path=cmd)打印(ACS)#调试windows = ACS.windows()打印(windows)dialog = ACS['Signon to IBM i']打印(对话框)打印("发送按键")keyboard.send_keys(标识)keyboard.send_keys("{标签}")keyboard.send_keys(密码)keyboard.send_keys("{进入}")打印("。")

目前,我也面临着同样的问题。我能够运行ibm (ACS),但是,一旦它运行,我的python脚本停止运行,好像应用程序正在阻止python运行一样。一般来说,应用程序似乎没有检测到脚本。但是一旦我关闭了应用程序,我的python脚本继续工作。我添加了一些指示,例如timessleep,但是正如我之前提到的,它只在IBM关闭后继续执行那行代码。需要添加几行来将选择移动到5250并注入凭据。

*我尝试了pyautogui,仍然面临同样的问题。所以现在我尝试pywinauto import keyboard .

#Variables
dir = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
x = dir.split("\")
print(x[-1])
command = "cd  && cd Users/Public/Desktop && " + '"' + x[-1] + '"'
print(command)  
os.system(command)
------ FROM THIS LINE OF CODE ONWARDS, IT STOPPED RUNNING ONCE IBM IS LAUNCHED ---
print('TIME START')
time.sleep(5)
print('TIME END')
keyboard.send_keys(username)
keyboard.send_keys(password)
keyboard.send_keys("{ENTER}") 
print('Done.')
谢谢你帮忙调查这件事。由于

相关内容

最新更新