• python window批量启动程序


    1.首先编写一个启动编辑文件的脚本,存放需要启动的软件路径:

    # -*- coding: utf-8 -*-
    import sys
    import os
    import threading
    import time
    import win32process
    
    """
    CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)
    
          appName         可执行文件名
    
          cmdLine         命令行参数
    
          procAttr        进程安全属性
    
          threadAttr      线程安全属性
    
          InheritHandle  继承标志
    
          CreationFlags  创建标志
    
          currentDir      进程的当前目录
    
          Attr             创建程序的属性
    """
    
    dir_path = 'd:/one-button-start'
    file_path = 'd:/one-button-start/start_app.txt'
    app_list = []
    
    class OneButton:
        # 定义构造器
        def __init__(self, app_list):
            # 封装账户编号、账户余额的两个成员变量
            self.app_list = app_list
            self.lock = threading.RLock()
        def getAppList(self):
            global app_list
            print("获取需要开机启动的软件")
            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
            file = open(file_path)
            while 1:
                lines = file.readlines(100000)
                if not lines:
                    break
                index = 0
                for line in lines:
                    lineStr = str(line).replace('
    ', '')
                    app_list.insert(index,lineStr)
                    index = index + 1
            file.close()
            print('getAppList:↓↓↓')
            print(app_list)
            self.app_list = app_list
        def openAppFile(self):
            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
            if not os.path.exists(file_path):
                f = open(file_path, 'w', encoding="utf-8")
                f.close()
            print("打开文件,写入可执行程序文件路径,写完保存文件后启动程序")
            # 用记事本打开aa.txt
            os.system('notepad ' + file_path)  # aa.txt文件必须在当前程序目录
        def runApps(self):
            print('runApps:↓↓↓')
            print(self.app_list)
            if self.app_list and len(self.app_list) > 0:
                for app in self.app_list:
                    print('run app path in:' + app)
                    # 打开程序,获得其句柄
                    try:
                        handle = win32process.CreateProcess(app, '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())
                    except Exception as exc:
                        print('启动'+ app + '报错如下:↓↓↓')
                        print(exc)
                        print('请重新输入正确的路径')
                    finally:
                        time.sleep(4)
            else:
                print("没有可以运行的程序!请录入可启动的程序")
                sys.exit(0)
        def main(self):
            self.getAppList()
            if self.app_list and len(self.app_list) > 0:
                self.runApps()
        def sotpApps(self):
            print("停止程序运行")
            # todo 关闭运行中的程序
            self.getAppList()
            if self.app_list and len(self.app_list) > 0:
                self.runApps()
    
    
    if __name__ == '__main__':
        app = OneButton([])
        print('录入需要启动的程序')
        app.openAppFile()
        # 打包成exe程序
        # pyinstaller -F -w one_button_write.py
        # pyinstaller -F one_button_write.py  --noconsole
        # 打包成带图标的exe   # my.ico 是一个图标名,和当前的shjys_rjjqk.py文件在同一个目录下
        # pyinstaller -F  --icon=edit.ico one_button_write.py

    2.读取脚本,一键启动

    # -*- coding: utf-8 -*-
    import sys
    import os
    import threading
    import time
    import win32process
    
    """
    CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)
    
          appName         可执行文件名
    
          cmdLine         命令行参数
    
          procAttr        进程安全属性
    
          threadAttr      线程安全属性
    
          InheritHandle  继承标志
    
          CreationFlags  创建标志
    
          currentDir      进程的当前目录
    
          Attr             创建程序的属性
    """
    
    
    dir_path = 'd:/one-button-start'
    file_path = 'd:/one-button-start/start_app.txt'
    app_list = []
    
    class OneButton:
        # 定义构造器
        def __init__(self, app_list):
            # 封装账户编号、账户余额的两个成员变量
            self.app_list = app_list
            self.lock = threading.RLock()
        def getAppList(self):
            global app_list
            print("获取需要开机启动的软件")
            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
            file = open(file_path)
            while 1:
                lines = file.readlines(100000)
                if not lines:
                    break
                index = 0
                for line in lines:
                    lineStr = str(line).replace('
    ', '')
                    app_list.insert(index,lineStr)
                    index = index + 1
            file.close()
            print('getAppList:↓↓↓')
            print(app_list)
            self.app_list = app_list
        def openAppFile(self):
            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
            if not os.path.exists(file_path):
                f = open(file_path, 'w', encoding="utf-8")
                f.close()
            print("打开文件,写入可执行程序文件路径,写完保存文件后启动程序")
            # 用记事本打开aa.txt
            os.system('notepad ' + file_path)  # aa.txt文件必须在当前程序目录
        def runApps(self):
            print('runApps:↓↓↓')
            print(self.app_list)
            if self.app_list and len(self.app_list) > 0:
                for app in self.app_list:
                    print('run app path in:' + app)
                    # 打开程序,获得其句柄
                    try:
                        handle = win32process.CreateProcess(app, '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())
                    except Exception as exc:
                        print('启动'+ app + '报错如下:↓↓↓')
                        print(exc)
                        print('请重新输入正确的路径')
                    finally:
                        time.sleep(4)
            else:
                print("没有可以运行的程序!请录入可启动的程序")
                sys.exit(0)
        def main(self):
            self.getAppList()
            if self.app_list and len(self.app_list) > 0:
                self.runApps()
        def sotpApps(self):
            print("停止程序运行")
            # todo 关闭运行中的程序
            self.getAppList()
            if self.app_list and len(self.app_list) > 0:
                self.runApps()
    
    
    if __name__ == '__main__':
        app = OneButton([])
        # 2.一键启动运行程序
        print('一键启动运行程序')
        app.main()
        # 打包成exe程序
        # pyinstaller -F -w one_button_start.py
        #打包成带图标的exe  # my.ico 是一个图标名,和当前的shjys_rjjqk.py文件在同一个目录下
        # pyinstaller -F --icon=start.ico one_button_start.py

    最后打包成exe文件

    使用  pyinstaller  去打包

    最后生成一下两个文件

    使用方法:

    首先点击一键编辑会跳出:写完之后保存关闭即可

     然后点击 one_button_start.exe即可启动相关软件

     

     exe下载地址:

    链接:https://pan.baidu.com/s/1IUwH4E6l7QeTEMU-eIeNXg
    提取码:kr0t

    写的比较简单,大家不喜勿喷哈,很鸡肋仅供学习使用;

  • 相关阅读:
    算法训练 P1103
    算法训练 表达式计算
    算法训练 表达式计算
    基础练习 时间转换
    基础练习 字符串对比
    Codeforces 527D Clique Problem
    Codeforces 527C Glass Carving
    Codeforces 527B Error Correct System
    Codeforces 527A Glass Carving
    Topcoder SRM 655 DIV1 250 CountryGroupHard
  • 原文地址:https://www.cnblogs.com/procedureMonkey/p/14379853.html
Copyright © 2020-2023  润新知