获取运行Sap登录vb6的GuiApplication到c#
发布时间:2020-12-17 00:23:01  所属栏目:大数据  来源:网络整理 
            导读:我必须将vb6程序迁移到C#.net 3.5 用户启动SAP登录并进行身份验证, 然后他可以使用该工具使用该工具获取和插入数据 问题: 我可以使用反射创建一个新的GuiApplication,但我无法用它来获取当前打开的GuiSessions:/ 这是当前打开GuiApplication所有打开的GuiS
                
                
                
            | 
                         
 我必须将vb6程序迁移到C#.net 3.5 
  
用户启动SAP登录并进行身份验证, 然后他可以使用该工具使用该工具获取和插入数据 问题: 我可以使用反射创建一个新的GuiApplication,但我无法用它来获取当前打开的GuiSessions:/ 这是当前打开GuiApplication所有打开的GuiSessions的代码的vb6部分 Dim obj As Object
    Set obj = CreateObject("SAPGUI")
    Set obj = obj.GetScriptingEngine
    If TypeName(obj) = "GuiApplication" Then
        Set SapAutomationObject = obj
        SapAutomationObject.AllowSystemMessages = False
        Debug.Print "SAP Automation OK"
    End If 
 我试着反思: GuiApplication Application = (GuiApplication)System.Activator.CreateInstance(Type.GetTypeFromProgID("SapGui.S??criptingCtrl.1")); 
 我有一个实例,但没有现有的会话 public static void testConnection()
        {
            SapROTWr.CSapROTWrapper sapROTWrapper = new SapROTWr.CSapROTWrapper();
            object SapGuilRot = sapROTWrapper.GetROTEntry("SAPGUI");
            object engine = SapGuilRot.GetType().InvokeMember("GetSCriptingEngine",System.Reflection.BindingFlags.InvokeMethod,null,SapGuilRot,null);
            SAPconnection.sapGuiApp = engine as GuiApplication;
            GuiConnection connection = sapGuiApp.Connections.ElementAt(0) as GuiConnection;
            GuiSession session = connection.Children.ElementAt(0) as GuiSession;
            MessageBox.Show(session.Info.User + " !!||!! " + session.Info.Transaction);
        } 
 使用此方法,您必须引用SAP安装的sapgui文件夹中的SapROTWr.DLL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
