Environment
Reflection for HP version 13.0 through 14.x
Situation
In HP sessions, the host application can set eight function key labels that are displayed at the bottom of the terminal screen. Reflection API functions that return display text do not retrieve function key label text. This technical note describes how to obtain function key definitions, including label text, in Reflection for HP.
Resolution
The following VBA macro example shows how to obtain function key label text by invoking an HP command to display these values, and then using GetText.
Type FunctionKey
keyLabel As String
keyString As String
keyAttr As String 'T=Transmit, N=Normal, C=Command, L=Local
End Type
Sub GetFunctionKeyLabels()
Dim userKeys(1 To 8) As FunctionKey
Dim rowIndex As Integer
Dim keyIndex As Integer
With Session
.Display Chr$(27) & "j" 'display function key definition
keyIndex = 1
For rowIndex = 0 To 14 Step 2
userKeys(keyIndex).keyLabel = Trim$(.GetText(rowIndex, 12, rowIndex, 66))
Debug.Print userKeys(keyIndex).keyLabel
userKeys(keyIndex).keyAttr = Trim$(.GetText(rowIndex, 3, rowIndex, 3))
userKeys(keyIndex).keyString = Trim$(.GetText(rowIndex + 1, 0, rowIndex + 1, 67))
keyIndex = keyIndex + 1
Next rowIndex
.Display Chr$(27) & "k" 'hide function key definition
End With
End Sub