Python Pywin32: как получить текущую строку курсора

Чтобы получить текущую строку курсора в Python с помощью библиотеки pywin32, вы можете использовать различные методы в зависимости от контекста, в котором вы хотите получить позицию курсора. Вот несколько примеров:

Метод 1: использование win32api

import win32api
def get_cursor_row():
    _, y = win32api.GetCursorPos()
    return y
current_row = get_cursor_row()
print("Current cursor row:", current_row)

Метод 2: использование ctypesи GetConsoleScreenBufferInfo

import ctypes
def get_cursor_row():
    STD_OUTPUT_HANDLE = -11
    handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
    class COORD(ctypes.Structure):
        _fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]
    class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
        _fields_ = [("dwSize", COORD), ("dwCursorPosition", COORD), ("wAttributes", ctypes.c_ushort),
                    ("srWindow", ctypes.wintypes.SMALL_RECT), ("dwMaximumWindowSize", COORD)]
    csbi = CONSOLE_SCREEN_BUFFER_INFO()
    ctypes.windll.kernel32.GetConsoleScreenBufferInfo(handle, ctypes.byref(csbi))
    return csbi.dwCursorPosition.Y
current_row = get_cursor_row()
print("Current cursor row:", current_row)

Метод 3: использование pygetwindow

import pygetwindow as gw
def get_cursor_row():
    active_window = gw.getActiveWindow()
    return active_window.top
current_row = get_cursor_row()
print("Current cursor row:", current_row)

Обратите внимание, что эти методы могут иметь разные требования и ограничения в зависимости от конкретного контекста, в котором вы работаете.