Freigeben über


Empfangen von Nachrichten mit Session Integrator für LU2

Nachdem Sie eine LU2-Sitzung erstellt haben, können Sie Informationen und Nachrichten über die 3270-Konsole und die Microsoft.HostIntegration.SNA.Session.ScreenDataMicrosoft.HostIntegration.SNA.Session.SessionDisplay Objekte abrufen.

Empfangen von Informationen über eine LU2-Verbindung

  1. Rufen Sie bei Bedarf den gesamten Bildschirm als Bildschirmabbild ab.Microsoft.HostIntegration.SNA.Session.ScreenData

    Für die meisten Umstände ist das Abrufen aller Informationen auf dem Bildschirm nicht erforderlich. Stattdessen können Sie das Microsoft.HostIntegration.SNA.Session.SessionDisplay Objekt für die meisten Anwendungen verwenden.

  2. Erhalten Sie die Cursorposition mit einem Aufruf von Microsoft.HostIntegration.SNA.Session.ScreenCursor.

  3. Optionalerweise können Sie die Position und Informationen, die in verschiedenen Feldern auf dem Bildschirm enthalten sind, durch einen Aufruf einer der Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A-Methoden, Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A-Methoden oder der Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A-Eigenschaft abrufen.

    Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A und Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A beide enthalten mehrere Überladungen, sodass Sie Feldinformationen vom Bildschirm abrufen können, je nachdem, welche Informationen Sie bereitstellen. Im Gegensatz dazu stellt Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A nur das Feld dar, in dem sich der Cursor gerade befindet.

  4. Schließlich können Sie Feldaktualisierungsinformationen mit einem Aufruf der verschiedenen SessionDisplay.Wait Methoden empfangen.

Beispiel

Der folgende Code stammt aus der 3270-Anwendung im Host Integration Server SDK. Das Beispiel verwendet SessionDisplay.CurrentField.Data, um auf die Bildschirmdaten zuzugreifen.

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);  
            }  
        }  

Siehe auch

Session Integrator für LU2
Session Integrator für LU0