每天打开电脑要启动的一般都是那几个程序,于是用python写了个小工具一键启动他们;
要启动的软件使用excel配置,读取excel的方法我直接百度使用别人写好的方法,py读取Excel表数据
import xlrd
class ExcelUtil():
def __init__(self, filePath, sheetName):
self.data = xlrd.open_workbook(filePath)
self.table = self.data.sheet_by_name(sheetName)
# 获取第一列的key值
self.keys = self.table.row_values(0)
# 获取总行数
self.rowNum = self.table.nrows
# print(u"总行数:", self.rowNum)
# 获取总列数
self.colNum = self.table.ncols
# print(u"总列数:", self.colNum)
# 读取Excel表中值
def dict_data(self, ):
if self.rowNum <= 1:
print("无数据可取")
return []
else:
# 创建一个列表将数据放入
r = []
j = 1
for i in range(self.rowNum - 1):
s = {}
# 从第二行取对应values值
values = self.table.row_values(j)
for x in range(self.colNum):
s[self.keys[x]] = values[x]
r.append(s)
j += 1
return r
def read_excel(filePath, sheetName):
data = ExcelUtil(filePath, sheetName)
return data.dict_data()
接下来就是使用读取到的数据
import pynput
import time
import os
from multiprocessing import Process, freeze_support # 进程
from excel import *
try:
# from win32ctypes.pywin32 import pywintypes # noqa: F401
# from win32ctypes.pywin32 import win32api
import pywintypes
import win32api
except ImportError:
pass
keyboard = pynput.keyboard.Controller()
filePath = "./config.xlsx"
Sheet1 = read_excel(filePath, "Sheet1")
Sheet2 = read_excel(filePath, "Sheet2")
# 移走鼠标 防止按回车时连续触发
mouse = pynput.mouse.Controller()
mouse.position = (1216, 538)
mouse.press(pynput.mouse.Button.left)
mouse.release(pynput.mouse.Button.left)
def isNumber(val):
try:
int(val)
return True
except ValueError:
return False
def star_exe():
# Sheet1其它方法读取的excel数据
for item in Sheet1:
if item["unuse"] == "":
# 执行命令行
win32api.ShellExecute(0, "open", item["url"], "", '', 1)
if item["is_enter"] == 1.0:
# 延时2秒
time.sleep(2)
# 按下回车
keyboard.press(pynput.keyboard.Key.enter)
# 松开回车
keyboard.release(pynput.keyboard.Key.enter)
if isNumber(item["s1"]):
time.sleep(int(item["s1"]))
else:
time.sleep(1)
else:
pass
def run_cmd():
cmd_list = []
for item in Sheet2:
if item["unuse"] == "":
url = ""
if item["url"] != "":
url = "cd " + item["url"] + "&&" + item["url"][0] + ":&&"
cmd = url + item["cmd"]
p = Process(target=cmd_call, args=(cmd,))
cmd_list.append(p)
p.start()
else:
pass
for c in cmd_list:
c.join()
def cmd_call(s):
os.system(s)
if __name__ == '__main__':
# 防止多次执行程序
freeze_support()
p_list = []
p1 = Process(target=run_cmd)
p2 = Process(target=star_exe)
p_list.append(p1)
p_list.append(p2)
p1.start()
p2.start()
for i in p_list:
i.join()
使用方法:
建立一个名为config的excel文件
sheet1中可以配置要启动的软件或者网址
sheet2中可以配置一些用命令行运行的东西