-
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
-
Ich denke mal, du musst die WHLLAPI's verwenden. Da gibt's beim QuerySessionStatus eine Struktur die die Infos enthält.
-
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?
-
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.
-
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.
-
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
-
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?
-
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
-
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
-
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
-
By RPG in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 10-01-13, 10:51
-
By roko in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 24-04-09, 14:55
-
By BMP in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 21-11-06, 12:18
-
By hgdieterle in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 12-04-06, 16:07
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks