我正在编写/试验需要连接到 Windows 10 中现有命名管道的 python 脚本。我使用的是 Python 3.8。
具体来说,我试图连接到一个名为的管道SendPipe1
并向其写入 14 个 ascii 编码的字符。
管道是由其他一些软件(驱动程序?)为连接到我的 PC 的设备创建的。我正在连接它以尝试以与制造商提供的软件相同的方式与设备交互。制造商提供的软件连接到同一管道并向其发送编码消息,命令设备执行某些操作。这就是我想做的。
通过运行 PipeList 实用程序,我知道管道已经存在:
PipeList v1.02 - Lists open named pipes
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Pipe Name Instances Max Instances
--------- --------- -------------
[...]
chrome.blah.foo 1 1
SendPipe1 1 -1
ReceivePipe1 1 -1
chrome.blah.bar 1 1
[...]
Run Code Online (Sandbox Code Playgroud)
这是我现在所拥有的:
ACTIVE_DISP_ID = 1
msg = f'6;16;100;{ACTIVE_DISP_ID};1\r\n'
pipe_path = f'\\\\.\\PIPE\\SendPipe{ACTIVE_DISP_ID}'
try:
f = open(pipe_path, 'wb+', buffering=0)
f.write(msg.encode(encoding='ascii'))
except OSError as …
Run Code Online (Sandbox Code Playgroud)