需要将Visual Basic SAP登录应用程序转换为C#应用程序

2020-08-21 18:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)这是我的Visual Basic...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


这是我的Visual Basic代码,可以正常工作!〜

================================================ ======================

公共子Logon_Click(作为对象发送,作为EventArgs发送)处理登录。单击

'===激活SAP登录板引擎

应用程序= CreateObject(" Sapgui.ScriptingCtrl.1")

'===启动预定义的SAPlogon pad连接之一

Sapgui = GetObject(" SAPGUI")

应用程序= Sapgui.GetScriptingEngine

connection = Application.OpenConnection(" SP1- ECC 6.0 Production [WM_MM_GRP]",真)

会话= connection.children(0)

'===填写登录屏幕字段

session.findById(" wnd [0]/usr/txtRSYST-BNAME")。text =" tuser_id_here"

session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。text =" passwd_here"

'===发送回车

session.findById(" wnd [0]")。sendVKey(0)

结束子

================================================ =======================

任何人在c#中都有一个示例

我在WPF中使用框架4.72,但如果需要,Windows窗体也可以。

该应用程序的其余部分位于.NET CORE C#WPF中。 就示例而言,那里没有多少东西!

我开始怀疑我是否可以在C#中使用SAP GUI。

谢谢

Pete

6条回答
渐行渐远_HoldOn
2020-08-21 18:38

最后,我设法使用此代码进行连接!

================================================ =

使用System.Windows;

使用sapfewse;

命名空间SAPGuiAutomated {

///<摘要>

///MainWindow.xaml的交互逻辑

//////

公共类SAPActive {

公共静态GuiApplication SapGuiApp {get; 组; }

公共静态GuiConnection SapConnection {get; 组; }

公共静态GuiSession SapSession {get; 组; }

私有无效Get_SAP(对象发送者,RoutedEventArgs e){

字符串connectString =" SP1-ECC 6.0生产[WM_MM_GRP],True";

SAPActive.SapGuiApp =新的GuiApplication();

SAPActive.SapConnection = SAPActive.SapGuiApp.OpenConnection(" SP1- ECC 6.0 Production [WM_MM_GRP]",Sync:false);

//创建连接

SAPActive.SapSession =(GuiSession)SAPActive.SapConnection.Sessions.Item(0);

//根据您建立的连接创建Gui会话

GuiTextField客户端=(GuiTextField)SAPActive.SapSession.ActiveWindow.FindByName(" RSYST-MANDT"," GuiTextField");

GuiTextField登录=(GuiTextField)SAPActive.SapSession.ActiveWindow.FindByName(" RSYST-BNAME"," GuiTextField");

GuiTextField pass =(GuiTextField)SAPActive.SapSession.ActiveWindow.FindByName(" RSYST-BCODE"," GuiPasswordField");

GuiTextField语言= GuiTextField)SAPActive.SapSession.ActiveWindow.FindByName(" RSYST-LANGU"," GuiTextField"); client.SetFocus();

client.Text =" 750";

login.SetFocus();

login.Text =" user_ID_HERE";

pass.SetFocus(); pass.Text =" PASSWD_HERE";

language.SetFocus(); language.Text =" EN";

//按下绿色的选中标记按钮,该按钮与Enter键大致相同

GuiButton btn =(GuiButton)SAPActive.SapSession.FindById("/img/app/con [0]/ses [0]/wnd [0]/tbar [0]/btn [0]"); btn.SetFocus();

btn.Press();

}

}

}

但是,如果我尝试使用FindByID,则(.text或.Text)不是SapSession的组件。

还有另一种使用FindByID的方法吗?

Pete

一周热门 更多>