热门标签 | 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()



   



推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 本文介绍了在Windows Server 2003环境下,使用XAMPP Lite 1.7.1和DotProject 2.1.3时遇到的日历和甘特图中文乱码问题的解决方案。通过修改相关文件和配置,可以有效解决这些问题。 ... [详细]
  • 开发笔记:2020 BJDCTF Re encode
    开发笔记:2020 BJDCTF Re encode ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 烤鸭|本文_Spring之Bean的生命周期详解
    烤鸭|本文_Spring之Bean的生命周期详解 ... [详细]
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社区 版权所有