唯一进程限制(Python)

一、序

在一些条件下,一个设备只需要运行一个进程,Python打包的exe只能运行一次的情况

二、实现思路

获取所有进程,判断是否已经有了该线程。没有输出1,有输出0

三、实现代码

实现代码
    def onlyOneSelf():
      pids = psutil.pids()  # 获取所有进程PID
      list = []  # 空列表用来存储PID名称
      i = 0  # 计数,程序名称出现的次数
      for pid in pids:  # 遍历所有PID进程
          p = psutil.Process(pid)  # 得到每个PID进程信息
          list.append(p.name())  # 将PID名称放入列表
          s = str(p.name())  # 将PID名称转换成字符串进行判断
          if s == "三期实时同步数据.exe":  # “123.exe”你要防多开进程的名称
              i += 1


      if i <= 2:  # 如果这个程序名称在程序管理器中出现次数少于两次,执行以下代码
          # while True:
          #     print("好")
          return 1

      else:  # 这个程序名称在任务管理器中出现两次以上,进行程序关掉
          pidd = os.getpid()  # 获取当前PID名称
          cmd = 'taskkill /pid ' +pidd+ ' /f'  # 输入关闭名称命令
          try:  # 程序防抱死,用try和except
              os.system(cmd)  # 打开系统命令行,将上面的命令导入,即可关掉重复程序
          except Exception as e:
          return 0
posted @ 2023-07-11 13:42  冥天肝  阅读(90)  评论(0编辑  收藏  举报