guo898989 2023-09-08 14:37 采纳率: 28.6%
浏览 4

我用pyqt5编写了一个窗口程序,如何控制程序同时运行的数量

打包后的exe一个软件70兆左右,目前可以复制这个程序n个,然后同时打开这n个程序。我想要达到的效果是即便被复制了很多 但在同一个电脑下只能同时允许运行3个该程序 再多的程序不能被打开同事运行。这个需要怎么编写啊

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-08 17:16
    关注

    【以下回答由 GPT 生成】

    我可以为你提供一个解决方案的思路,但是由于限制程序同时运行的数量涉及到操作系统级的操作,具体的实现方式可能会因操作系统的不同而有所差异。下面是一个基于Windows系统的解决方案的代码示例:

    import sys
    import os
    from PyQt5.QtWidgets import QApplication, QMessageBox
    
    # 检查当前运行的程序数量
    def check_running_programs():
        program_name = 'your_program_name.exe'  # 替换为你的程序名称
        count = 0
        for proc in psutil.process_iter(['name']):
            if proc.info['name'] == program_name:
                count += 1
        return count
    
    # 程序启动时检查运行的程序数量
    def check_program_limit():
        max_limit = 3  # 最大运行数量限制
        if check_running_programs() >= max_limit:
            QMessageBox.warning(None, 'Warning', 'Exceeded the maximum number of running programs!')
            sys.exit()
    
    if __name__ == '__main__':
        # 检查运行的程序数量
        check_program_limit()
    
        # 其他初始化操作
        ...
    
        # 启动你的窗口程序
        app = QApplication(sys.argv)
        window = YourWindowClass()  # 替换为你的窗口类名
        window.show()
        sys.exit(app.exec_())
    

    这个代码示例中,我们使用了psutil模块来获取当前运行的程序数量。然后在程序启动时,调用check_program_limit()函数检查运行的程序数量是否超过了限制,如果超过了限制则弹出警告信息并退出程序。

    请注意,你需要将your_program_name.exe替换为你的程序的名称,YourWindowClass替换为你的窗口类名。此外,该示例仅适用于Windows系统,如果你的程序在其他操作系统上运行,你可能需要使用不同的方法来检查运行的程序数量。

    在编写实际的应用程序时,还需要考虑如何防止用户通过其他方式运行程序,例如命令行、快捷方式等,从而绕过程序数量的限制。这可以通过使用互斥体(mutex)来实现,但具体实现方法可能因操作系统的不同而有所差异。这超出了本问题的范围,建议你在具体实际应用中进一步研究这个问题。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月8日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画