热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# -*- 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()



   



推荐阅读
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • Jenkins API当前未直接提供获取任务构建队列长度的功能,因此需要通过解析HTML页面来间接实现这一需求。 ... [详细]
  • 本文介绍了一种方法,通过使用Python的ctypes库来调用C++代码。具体实例为实现一个简单的加法器,并详细说明了从编写C++代码到编译及最终在Python中调用的全过程。 ... [详细]
  • 深入解析层次聚类算法
    本文详细介绍了层次聚类算法的基本原理,包括其通过构建层次结构来分类样本的特点,以及自底向上(凝聚)和自顶向下(分裂)两种主要的聚类策略。文章还探讨了不同距离度量方法对聚类效果的影响,并提供了具体的参数设置指导。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • 微信小程序开发指南:创建动态电影选座界面
    本文详细介绍如何在微信小程序中实现一个动态且可视化的电影选座组件,提高用户体验。通过合理的布局和交互设计,使用户能够轻松选择心仪的座位。 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
author-avatar
ccmmm
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有