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:

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
Donc la question est comment recupérer mon application object en fonction du process
Ou comment faire un for each avec les "guiapplication" ouverte

Merci a tous