首页 八字 正文

如何在有多个文件时运行c程序的简单介绍

在利用Python实现办公自动化的过程中,经常需要启动其他专用程序来进行一些操作,比如微信、erp等内部数据系统等,启动其他程序的方法有以下几种:

方法一:os.startfile()

该方法可以直接启动exe文件,erp等部分软件启动时需要配置参数不能直接启动exe文件,可以通过快捷方式启动:

import osos.startfile(r"F:\Program Files\WeChat\WeChat.exe")os.startfile(r"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\微信\微信.lnk")方法二:使用ShellExecute函数运行其他程序

还可以使用win32api模块中的ShellExecute()函数来运行其他程序。

import win32apiwin32api.ShellExecute(0, 'open', "F:\Program Files\WeChat\WeChat.exe", '', '', 0)win32api.ShellExecute(0, 'open', "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\微信\微信.lnk", '', '', 0)

ShellExecute(hwnd, op, file, args, dir, show)

hwnd: 父窗口的句柄,如果没有父窗口,则为0

op : 要运行的操作,为open,print或者为空

如何在有多个文件时运行c程序的简单介绍

file : 要运行的程序,或者打开的脚本

args : 要向程序传递的参数,如果打开的是文件则为空

dir : 程序初始化的目录

show : 是否显示窗口

方法三:使用CreateProcess函数运行其他程序

创建进程:为了便于控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建一个运行相应程序的进程。该方式不能通过快捷方式启动。

import win32processwin32process.CreateProcess("F:\Program Files\WeChat\WeChat.exe", '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())

CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)

如何在有多个文件时运行c程序的简单介绍

appName 可执行文件名

cmdLine 命令行参数

procAttr 进程安全属性

threadAttr 线程安全属性

InheritHandle 继承标志

CreationFlags 创建标志

currentDir 进程的当前目录

Attr 创建程序的属性

方法四:pyautogui库

通过pyautogui进行图标识别,然后模拟双击图标启动。该方式稳定性不高,可移植性较差(可能是学艺不精)。

import pyautoguicposition = pyautogui.locateOnScreen(r"E:\L3.bmp") #根据图片定位cc = pyautogui.center(cposition) #获取这个软件位置的中心pyautogui.moveTo(cc[0],cc[1]) #把鼠标移动到这个位置pyautogui.click(clicks=2) #双击

以上是我在进行自动化过程中使用过得比较好的4种方式,期待有其他更好的方式出现。