[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2013
    Beiträge
    7

    5250 Emulation

    Hallo,

    ich bin neu in der Gemeinde der sich mit der AS/400 beschäftigten Entwickler. Derzeit beschäftige ich mich damit aus der 5250 Emulation Daten auszulesen. Leider reagieren die Aufrufe jedoch teilweise nicht so wie ich es aus der Dokumentation erwarten würde. Viellicht kennt sich jemand von euch auch damit aus...

    Die Funktion HA_QUERY_SESSION_STATUS (22) liefert mit keinen String mit 20 Zeichen zurück, wie es in der Doku steht, sonden nur ein Zeichen, nämlich die SessionID. Genauso sieht es mit der Funktion HA_QUERY_SESSIONS (10) aus. Bei dieser Funktion erhalte ich "A IBM SystH".

    Mir geht es darum die Anzahl der Zeilen und Spalten auszulesen, damit ich den Datenstrom anschließend richtig verarbeiten kann.

    Ich hoffe, ich bin hier im richtigen Forum gelandet, wenn nicht bitte ich die Admins, den Beitrag in das richtige Forum zu verschieben.

    Gruß
    vocaris

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich denke mal, du musst die WHLLAPI's verwenden. Da gibt's beim QuerySessionStatus eine Struktur die die Infos enthält.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jul 2013
    Beiträge
    7
    Von der WHLLAPI hab ich schon gehört... Diese ist aber leider nicht Bestandteil des Entwickler-Toolkits von IBM. Wo kann man sich die DLL offiziell runterladen?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Bei mir ist die Lib im Verzeichnis:
    C:\Program Files (x86)\IBM\Client Access\Toolkit\Lib\PC5250\Standard

    Alternativ gibt es wohl noch C++-Klassen "ECLxxx" die das Ganze komfortabler gestalten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jul 2013
    Beiträge
    7
    Ok, ich hab immer nach einer whllapi.dll gesucht, in dem Ordner finde ich nur eine lib-Datei. Aber ich brauche doch eine dll, damit ich diese einbinden kann... Oder steh ich jetzt vollkommen auf dem Schlauch. Als Entwicklungsplattform wird VS 2010 eingesetzt.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die Lib wird vom Linker eingebunden und enthält die von dir aufgerufenen Funktionen.
    Welche DLL-Funktionen im Endeffekt aufgerufen werden spielt keine Rolle, da eine Lib dies kapselt.

    Welche Funktionen in einer Lib vorhanden sind, kannst du hier ermitteln:
    A tool to view a LIB - CodeProject
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jul 2013
    Beiträge
    7
    Ok, so langsam komm ich dahinter... Die LIB's sind nur für C/C++... Gibt es einen alternativen Weg für Managed Code? Unsere Entwicklung beschränkt sich auf VB.NET und C#. In dem Umfeld kann ich mit LIB-Dateien nicht viel anfangen. Welche anderen Wege gibt es noch?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Für managed Code gibt es da leider nichts.
    Du kannst dir da mittels C++ eine ATL-COM-Wrapperklasse erstellen .

    Ansonsten habe ich die DLL's auch gefunden, die stecken in
    C:\Program Files (x86)\IBM\Client Access\Emulator
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ok, es gibt da noch was:
    PCOMM ActiveX enthält eine ganze Reihe von Objekten und Methoden zur Steuerung von 5250.
    Hier gibts auch ein Beispiel.

    Four Hundred Guru--Use PCOMM Scripts to Execute Remote PC Commands, Part 1

    Und hier die Dokumentation:
    Help - Personal Communications


    In VB.Net und C# kann man VBScript auch native verwenden.

    Alternativ muss man die PCOMM-Typelib's (registriert als COM-Objekte) in Wrapper-Klassen übersetzen lassen, das kann VisualStudio selber.
    Dann hat man direkte managed Zugriffsobjekte.
    Allerdings sollte man COM-Objekte selber explizit auflösen.
    COM-Objekte in .NET deterministisch freigeben
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Jul 2013
    Beiträge
    7
    Hallo,
    vielen Dank für deine Anregungen Mittlerweile habe ich eine Lösung für Managed Code erarbeitet. Für alle, die das selbe Problem haben, hier ein kleiner Beispielcode:
    Code:
    Public Sub QuerySessionStatus()
        Dim data As HLDQuerySessionStatus
        Dim p As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(data))
    
        Try
            Dim ret As UInteger = 0
            Dim l As UInt32 = 20
            Dim rc As UInt32 = 0
                   
            data.qsst_shortname = Me.sessionId
    
            Marshal.StructureToPtr(data, p, False)
    
            Dim f As UInt32 = HA_QUERY_SESSION_STATUS
            ret = hllapi2(f, p, l, rc)
    
            data = Marshal.PtrToStructure(p, data.GetType)
    
            Me.ScreenHeight = data.qsst_ps_rows
            Me.ScreenWidth = data.qsst_ps_cols
    
        Catch ex As Exception
            'pass the error to the caller
            Throw ex
        Finally
            Marshal.FreeHGlobal(p)
        End Try
    End Sub
    Danke!

Similar Threads

  1. 5250 Emulation auf Handheld
    By RPG in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 10-01-13, 10:51
  2. ThinClient und 5250 Emulation
    By roko in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 24-04-09, 14:55
  3. Ericom Powerterm 5250 Emulation mit Status "X"
    By BMP in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-11-06, 12:18
  4. Größe Fenster 5250 Emulation
    By hgdieterle in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 12-04-06, 16:07
  5. 5250 Emulation einem bestimmten SBS zuordnen
    By freds in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 20-01-06, 09:48

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •