C#实现远程按键同步
由于一个演示报告需要让两台机器的PPt播放同步,没有长驱等连接设备,就用C#通过TCP/IP协议走网络实现两台机器按键同步的功能。
1.基本思路
程序分为两个部分:主机和从机。
主机主要功能:调用全局键盘钩子监听用户按键,建立TCP套接字,然后通过套接字向从机发送键盘指令。
从机主要功能,与主机建立TCP连接,接收主机的按键指令,并在本地模拟全局键盘信号。
2.实现方案
主要涉及的关键技术:获取全局键盘钩子,TCP连接,模拟键盘指令。
3后期完善
花了半天的时间,边问度娘边实现了,实现之后同步基本PPT操作(空格键,方向键)没有问题,但是发现一旦两次按键间隔时间过小(3-4次/秒),就会引发消息传送出错,甚至系统崩溃。又用了半天的时间解决。
3.1建立指令堆栈
从机建立指令堆栈,将接受到的指令先压入堆栈中,而不是直接发送出去,避免速度太快系统崩溃。