Partager via


Réception de messages avec l’intégrateur de session pour LU2

Après avoir créé une session LU2, vous pouvez récupérer des informations et des messages à partir de la console 3270 via les objets Microsoft.HostIntegration.SNA.Session.ScreenData et Microsoft.HostIntegration.SNA.Session.SessionDisplay.

Recevoir des informations sur une connexion LU2

  1. Si nécessaire, récupérez l’écran entier en tant que capture d’écran à l’aide de Microsoft.HostIntegration.SNA.Session.ScreenData.

    Dans la plupart des cas, la récupération de toutes les informations à l’écran n’est pas nécessaire. Au lieu de cela, vous pouvez utiliser l’objet Microsoft.HostIntegration.SNA.Session.SessionDisplay pour la plupart des applications.

  2. Obtenez l’emplacement du curseur avec un appel à Microsoft.HostIntegration.SNA.Session.ScreenCursor.

  3. Si vous le souhaitez, vous pouvez obtenir l’emplacement et les informations contenues dans différents champs à l’écran avec un appel à l'une des méthodes Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A ou Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A, ou à la propriété Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A.

    Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A et Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A les deux contiennent plusieurs surcharges, ce qui vous permet de récupérer des informations de champ à partir de l’écran, en fonction des informations que vous fournissez. En revanche, Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A représente uniquement le champ dans lequel se trouve le curseur.

  4. Enfin, vous pouvez obtenir des informations de mise à jour de champ en appelant les différentes méthodes SessionDisplay.Wait.

Exemple :

Le code suivant provient de l’application 3270 dans le Kit de développement logiciel (SDK) Host Integration Server. L’exemple utilise SessionDisplay.CurrentField.Data pour accéder aux données de l’écran.

private void PerformTX_Click(object sender, EventArgs e)  
        {  
            try  
            {  
                // Disable every button and text box.  
                DisableEverything();  
  
                m_Handler.SendKey("@E");  
                TraceScreen();  
  
                // Wait for screen to calm down.  
                m_Handler.WaitForSession(SessionDisplayWaitType.NotBusy, 5000);  
                TraceScreen();  
  
                // See if the Balance Field is filled out.  
                m_Handler.Cursor.Row = m_row;  
                m_Handler.Cursor.Column = m_column;  
                TraceScreen();  
                // Tab to the Account Number field.  
                m_Handler.SendKey("@T");  
                TraceScreen();  
                // Move to the Next Field (Empty Stuff after 123456).  
                m_Handler.MoveNextField();  
                TraceScreen();  
                // Move to the Next Field (Title, Account Balance).  
                m_Handler.MoveNextField();  
                TraceScreen();  
                // Move to the Next Field (Account Balance).  
                m_Handler.MoveNextField();  
                TraceScreen();  
  
                // Extract Data from this field.  
                string accountBalance = m_Handler.CurrentField.Data;  
  
                // Trim the string.  
                accountBalance = accountBalance.Trim();  
  
                // Only things to do now are clear screen or disconnect.  
                EnableClearScreen();  
  
                // If we failed (not Abended) then this field will be blank.  
                if (accountBalance.Length == 0)  
                    throw new Exception("Failed to get Account Balance");  
                else  
                    MessageBox.Show(accountBalance, "Account Balance");  
            }  
            catch (Exception ex)  
            {  
                MessageBox.Show(ex.Message);  
            }  
        }  

Voir aussi

Intégrateur de session pour LU2
Intégrateur de session pour LU0