python 同步记事本_python多个记事本同步输入内容

本人py小白一枚,想做个小程序可以同步按键,比如开3个记事本,在一个记事本里输入可以同步内容到其他两个记事本,网上找了些代码凑了下,折腾了几天没折腾出来, 代码:

# -*- coding: utf-8 -*- #

import pythoncom

import pyHook

import win32api,win32gui,win32con

windows = []

# 问题1:这个startSync我只想类似于标识一样 不需要定义成数组 但是用startSync = 0的话执行会报错 为啥定义成数组就不报错了

startSync = []

def onKeyboardEvent(event):

# F6将当前窗口加入同步

if event.KeyID == 117:

hwnd = win32gui.GetForegroundWindow()

windows.append(hwnd)

print hwnd, 'append to windows'

# 发送按键到其他窗口

if len(startSync) != 0:

windows_max = len(windows)

for index in range(windows_max):

# 第一个加入的窗口未主窗口 无需同步按键

# if index == 0:

# continue

# 问题2:这种方法可以发送按键 但是有个问题 会无限循环 这个keybd_event又触发了键盘事件

# win32gui.SetForegroundWindow(windows[index])

# win32api.keybd_event(event.KeyID, 0, 0, 0)

# win32api.keybd_event(event.KeyID, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键

# 问题3:这种方法貌似不能发送按键到未激活的窗口 如果上面setForeground了 会有个新问题 只能发送按键到最后个窗口

win32gui.PostMessage(windows[index], win32con.WM_KEYDOWN, event.KeyID, 0)

win32gui.PostMessage(windows[index], win32con.WM_KEYUP, event.KeyID, 0)

# F7开始同步

if event.KeyID == 118:

startSync.append(1)

print 'start sync'

return True

def main():

# 创建一个“钩子”管理对象

hm = pyHook.HookManager()

# 监听所有键盘事件

hm.KeyDown = onKeyboardEvent

# 设置键盘“钩子”

hm.HookKeyboard()

# 进入循环,如不手动关闭,程序将一直处于监听状态

pythoncom.PumpMessages()

if __name__ == "__main__":

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值