PDA

View Full Version : Richtige Session finden



vocaris
10-07-13, 15:41
Hallo,

diesmal bin ich auf der Suche nach einem Weg die zuletzt verwendete Session zu finden. Hintergrund ist folgender:
Ich versuche aus eines 5250 Emulation Werte auszulesen. Nun ist es ja so, dass der Benutzer möglicherweise mehrere Sessions geöffnet hat. Derzeit versuche ich einfach eine Session A, dann B, ... zu finden und greife dann auf diese zu. Es kann aber natürlich sein, dass der Benutzer A und B offen hat und in B arbeitet, dann müsste ich die Daten aus B auslesen. Wie finde ich herraus, dass der Benutzer zuletzt in B aktiv war?

Gruß
vocaris

Fuerchau
10-07-13, 17:07
Eigentlich fast überhaupt nicht.
Hierfür kannst du nur Windows-API's bzw. die passenden .NET-Funktionen verwenden.
Per Timerevent das aktuelle Desktopwindow feststellen.
Von diesem das Hauptfenster, also das Fenster mit Titelzeile, über die Parent-Eigenschaft auffinden.
Von diesem Fenster die Text-Eigenschaft auslesen (ggf. nicht so einfach bei fehlender Berechtigung) und hoffen, dass du da was findest, was der aktuellen Sitzung enstpricht.

Alternativ gibts ja noch die PCSAPI's mit denen man auch Timergesteuert die aktuelle Sitzung erfragen könnte und welche Sitzungen überhaupt auf sind.

Dies ist allerdings nicht so sicher.

Schau dir noch mal die PCOMM-API's an, ich glaube die können auch Events generieren.

KingofKning
11-07-13, 11:50
Eine Möglichkeit hast Du noch.

Bei wrkactjob kannst du feststellen wenn ein Benutzer eine Taste drückt.

Wenn du jetzt alle paar Minuten schaust welche Session wie viel Tastendrücke hast wärst Du schon fast da.

GG

Fuerchau
11-07-13, 12:22
Nunja, alle paar Minuten und WRKACTJOB vom PC ohne Sitzung aus halte ich nicht für die geeignete Lösung.
Außerdem besagt die Anzahl Tastendrücke nichts darüber aus, welche Sitzung sich auf dem PC denn gerade jetzt im Vordergrund befindet.

Die Windowsfunktion GetForgroundWindow() liefert das aktuelle oberste Fenster.

vocaris
18-07-13, 15:24
Danke für die Lösungsansätze. Leider komm ich an der Stelle jedoch nicht weiter. Ich habe mir die Dokumentation der PCSAPI angesehen. Mit welcher Funktion findet man denn die aktuelle Session?