Bonjour à tous !
Avant, j'avais un activeX EXE nommé "Readers". C'était une fenêtre graphique qui permettait de gérer des lecteurs.
Pour l'ajouter dans un autre projet, il suffisait de l'ajouter en référence et de faire :
A ce moment là, j'avais accès à toutes les infos du reader. L'activeX était dans un autre thread donc pendant que le projet fonctionnait, la fenêtre était accessible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim connector As New Readers.Connector (Connector était une classe publique) Dim myReader AS Readers.reader = connector.getInstanceOfReader()
J'ai refait ce programme en .NET. J'ai tenté de faire :
Avec dans connector du projet "Readers":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim Connector As New IDReader.Connector Dim t As New System.Threading.Thread(AddressOf Connector.ShowProgress) t.IsBackground = True t.SetApartmentState(Threading.ApartmentState.STA) t.Start() Reader = Connector.getInstanceOfReader
Quand le programme s'éxecute, pas de problème, la fenêtre réagit bien. Mais, le projet principal est en mode "debug" et si j'arrive sur un breakpoint dans mon code, la fenêtre se freeze.
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 Public Sub New() ReaderInst = New ReaderAPI() End Sub Sub ShowProgress() MyMainWindow = New MainWindow() MyMainWindow.Show() End Sub Public ReadOnly Property getInstanceOfReader() As ReaderAPI Get Return ReaderInst End Get End Property
Je ne sais pas comment faire. Quelqu'un a une idée?
Est-il possible de le passer en Processus à la place et d'intéragir avec?
Merci,
Guillaume
Partager