|
接收线程 | | |
|
管道输出端句柄1 | 整数型 | | | |
管道输入端句柄1 | 整数型 | | | | 管道输出端句柄2 | 整数型 | | | | 管道输入端句柄2 | 整数型 | | | | 进程标识 | 整数型 | | | | 进程ID | 整数型 | | | | 回调子程序 | 整数型 | | | | 进程句柄 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
数据缓冲区 | 字节集 | | |
输出文本 | 文本型 | | |
实际读取字节数 | 整数型 | | |
可读取总字节数 | 整数型 | | |
i | 整数型 | | |
备注1 | 长整数型 | | |
备注2 | 文本型 | | |
临界许可.
进入 ()
计次循环首 (取数组成员数 (集_控制台信息
), i
)
如果真 (集_控制台信息
[i
].进程标识 = 进程标识
)

备注1 = 集_控制台信息
[i
].备注信息1


备注2 = 集_控制台信息
[i
].备注信息2

跳出循环 ()

计次循环尾 () 临界许可.
退出 ()Call3 (回调子程序, 进程标识, 进程ID,
“Start.[CID:” +
到文本 (进程标识
) +
“][ID:” +
到文本 (进程ID
) +
“]” +
“{RMK1:” +
到文本 (备注1
) +
“}{RMK2:” + 备注2 +
“}” +
#换行符 )
判断循环首 (PeekNamedPipe (管道输出端句柄2, 0, 0, 0, 可读取总字节数, 0
) ≠ 0
)
如果 (可读取总字节数 > 0
)

数据缓冲区 =
取空白字节集 (可读取总字节数
)
ReadFile (管道输出端句柄2, 数据缓冲区, 可读取总字节数, 实际读取字节数, 0
)

输出文本 =
UTF8到文本 (数据缓冲区
)
Call3 (回调子程序, 进程标识, 进程ID, 输出文本
)

如果真 (WaitForSingleObject (进程句柄, 0
) = 0
)
跳出循环 ()
延时 (500)

判断循环尾 ()CloseHandle (管道输出端句柄1
)CloseHandle (管道输入端句柄1
)CloseHandle (管道输出端句柄2
)CloseHandle (管道输入端句柄2
)临界许可.
进入 ()
计次循环首 (取数组成员数 (集_控制台信息
), i
)
如果 (进程标识 = 0
)

如果真 (集_控制台信息
[i
].进程ID = 进程ID
)


备注1 = 集_控制台信息
[i
].备注信息1



备注2 = 集_控制台信息
[i
].备注信息2


删除成员 (集_控制台信息, i, 1
)

跳出循环 ()




如果真 (集_控制台信息
[i
].进程标识 = 进程标识
)

备注1 = 集_控制台信息
[i
].备注信息1


备注2 = 集_控制台信息
[i
].备注信息2

删除成员 (集_控制台信息, i, 1
)
跳出循环 ()



计次循环尾 () 临界许可.
退出 ()Call3 (回调子程序, 进程标识, 进程ID,
“Exit.[CID:” +
到文本 (进程标识
) +
“][ID:” +
到文本 (进程ID
) +
“]” +
“{RMK1:” +
到文本 (备注1
) +
“}{RMK2:” + 备注2 +
“}” +
#换行符 )