获取运行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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
