在VBScript宏中登录用户IBM个人通信

时间:2014-11-25 16:51:40

标签: macros vbscript client ibm-midrange

我们使用IBM Personal Communications iSeries Access for Windows 6.0版。启动程序时,您最初会获得一个登录提示,可以输入服务器,用户名和密码。

然后它会向您提供服务器本身的登录屏幕,您必须再次登录。在两次登录之间,我试图找出一个"启动宏"

我现在没有任何内容,因为我无法弄清楚如何从会话中获得一个特定的值,即用户名。

我可以获得屏幕标题,会话名称,宏名称,但我不能为我的生活弄清楚如何获取用户名。我已经尝试了所有可能的字符串组合和"变量"我能想到的名字,什么都没有。

我在网上搜索过,我所能找到的就是如何录制和自动登录绿屏,这不是我想要的。

要明确我只需要用于登录Personal Communications iSeries Access for Windows程序的用户名,绿色屏幕前登录。

2 个答案:

答案 0 :(得分:0)

值得注意的是,IBM i Access for Windows不仅仅是5250仿真器。有一个ODBC驱动程序,一个打印机模拟器,一个AFP打印机驱动程序和i的图形导航器。 IBM i登录弹出窗口并非来自5250仿真器。它来自较低级别的IBM i Access for Windows进程。亲自尝试一下。重启PC。不要启动模拟器。请启动IBM i Navigator for Windows。你会得到登录弹出窗口。

看起来你正试图自动化“禁止登录”登录。用户名可能存储在注册表中,具体取决于您使用的Windows版本和IBM i Access for Windows的版本。 Windows 7:开始>所有程序> IBM i Access for Windows> IBM I Access for Windows属性选择“管理系统”选项卡,您将看到服务器和用户。 HKCU>软件> IBM> Client Access Express> CurrentVersion> AS400操作导航器>应用程序管理> CurrentAdminSysUser>我的连接

答案 1 :(得分:0)

我认为,为此,您需要进入iSeries Access附带的ActiveX控件。这个小代码C#片段应该可以工作:

AS400System sys1 = new AS400System();
sys1.Define("mySystemNameHere");
if (sys1.IsConnected(cwbcoServiceEnum.cwbcoServiceAny) != 1)
{
    sys1.Connect(cwbcoServiceEnum.cwbcoServiceTelnet);
}
String user = sys1.UserID;
sys1.Disconnect(cwbcoServiceEnum.cwbcoServiceAll);

您需要找到cwbx.dll并将其添加为项目的参考。

如果用户已从其他应用程序连接,则不会显示任何对话框。程序将连接,获取连接的用户ID,然后断开连接。如果用户自登录后从未连接过,则会出现登录对话框。