作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我必须将 vb6 程序迁移到 C# .net 3.5用户启动 SAP 登录并进行身份验证,然后他可以使用该工具使用该工具获取和插入数据问题:我可以用反射创建一个新的 GuiApplication,但我不能用它获取当前打开的 GuiSessions:/这是当前打开的 GuiApplication 和所有打开的 GuiSession 代码的 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.ScriptingCtrl.1"));
我有一个实例但没有现有的 session
最佳答案
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。
关于c# - 获取运行Sap logon vb6的GuiApplication to c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729561/
我是一名优秀的程序员,十分优秀!