Bonjour,
Depuis plusieurs jour je suis bloquer sur un programme
j'ai un probleme pour récupérer une application object
j'ai une application "saplogon.exe" que je veux piloter
Pour cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Function test() As Integer Dim engine As Object Dim sapROTWrapper As New CSapROTWrapper Dim sapguilrot As Object Dim sapguiapp As GuiApplication Dim connection As GuiConnection Dim session As GuiSession sapguilrot = sapROTWrapper.GetROTEntry("SAPGUI") engine = sapguilrot.GetType().InvokeMember("GetSCriptingEngine", System.Reflection.BindingFlags.InvokeMethod, Nothing, sapguilrot, Nothing) sapguiapp = engine connection = sapguiapp.OpenConnection(Attribution(dét).systeme3, False, True) session = connection.Children.Item(0) //script de pilotage End Function
je pense qu'il est possible de zapper les lignes 10 et 11 en utilisant un code dans ce genre la:
Donc la question est comment recupérer mon application object en fonction du process
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 P = Process.GetProcessesByName("saplogon") For Each r In P sapguiapp = // object en fonction du process connection = sapguiapp.OpenConnection(Attribution(dét).systeme3, False, True) If connection.Description = "TRANSACTION SAP" Then session = connection.Children.Item(0) Exit For End If Next
Ou comment faire un for each avec les "guiapplication" ouverte
Merci a tous
Partager