Подслушать COM порт Windows 7x64. Python win32api
Необходимо параллельно с приложением Windows, которое читает COM порт, забирать данные с этого же порта, желательно, используя не ниже python3.8. Поскольку, похоже, что pyserial работает через win32api, я делаю следующее (не используя pyserial):
import win32file
com_file = win32file.CreateFile("COM4",
win32file.GENERIC_READ | win32file.GENERIC_WRITE,
win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE | win32file.FILE_SHARE_DELETE,
None,
win32file.OPEN_EXISTING,
win32file.FILE_ATTRIBUTE_NORMAL, None)
com_dcb = win32file.DCB()
com_dcb.ByteSize = 8
com_dcb.Parity = win32file.NOPARITY
com_dcb.StopBits = win32file.ONESTOPBIT
com_dcb.BaudRate = 9600
win32file.SetCommState(com_file, com_dcb)
win32file.SetCommMask(com_file, win32file.EV_RXCHAR | win32file.EV_TXEMPTY)
win32file.SetupComm(com_file, 1024, 1024)
while True:
win32file.WaitCommEvent(com_file, None)
output = win32file.ReadFile(com_file, 14)
print(output)
то есть, я указываю параметр shareMode = win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE | win32file.FILE_SHARE_DELETE, про который написано тут, но при последующем запуске другого приложения, оно не может получить доступ к COM порту - порт занят. Подскажите пожалуйста, возможно ли вообще через win32api реализовать подслушивание COM порта?
Спасибо!