Я автоматизирую эмулятор Zscope Express 3270, используя Zhllap32.dll, который поставляется с папкой установки программного обеспечения < /p>
Я использую ehllapi для основной рамы Auomation. Функция, такая как отправка клавиш, вкладка, вход, очистка, те, которые работают хорошо, но функционируют, такие как get_cursor_pos, set_cursor, read-screen, не работают, я использую этот код < /p>
Вот код ----- < /p>
Код: Выделить всё
public boolean setCursor(int row, int col) {
int psPos = (row - 1) * 80 + (col - 1) + 1;
String psStr = String.format("%05d", psPos);
System.out.println("PPP : "+psStr);
byte[] psBytes = psStr.getBytes(StandardCharsets.US_ASCII);
Memory dataBuffer = new Memory(5);
dataBuffer.write(0, psBytes, 0, 5);
IntByReference function = new IntByReference(40);
IntByReference length = new IntByReference(5);
IntByReference returnCode = new IntByReference();
api.HLLAPI(function, dataBuffer, length, returnCode);
System.out.printf("🖱️ SetCursor to (%d,%d) [PS=%d] => rc=%d\n", row, col, psPos, returnCode.getValue());
return returnCode.getValue() == 0;
}
< /code>
Вот интерфейс >>> < /p>
import com.sun.jna.*;
import com.sun.jna.ptr.intbyreference; < /p>
public ehllapi Extends Extends Extends Extends {
ehllApi encement = Native.Load.Load ("zhllApi", {
ehllApi encess = native. Ehllapi.class); < /p>
void HLLAPI(IntByReference function,Pointer data,IntByReference length, IntByReference returnCode);
Я также пытался с различным кодом функции, но не работает то же самое с другой функцией]
Подробнее здесь: https://stackoverflow.com/questions/796 ... llap32-dll