python ShellExecute 打开外部程序或文件 作者:马育民 • 2021-07-21 22:51 • 阅读:10403 # 介绍 使用ShellExecute函数,就相当于在资源管理器中双击文件图标,系统会打开相应程序运行 # 函数 ``` ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open、print} FileName: PChar; {指定要打开的文件或程序} Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil} Directory: PChar; {缺省目录} ShowCmd: Integer {打开选项} ): HINST; {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误} ``` **形参:** - ShowCmd 参数可选值: ``` SW_HIDE = 0; {隐藏} SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活} SW_NORMAL = 1; {同 SW_SHOWNORMAL} SW_SHOWMINIMIZED = 2; {最小化, 激活} SW_SHOWMAXIMIZED = 3; {最大化, 激活} SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED} SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活} SW_SHOW = 5; {同 SW_SHOWNORMAL} SW_MINIMIZE = 6; {最小化, 不激活} SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE} SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE} SW_RESTORE = 9; {同 SW_SHOWNORMAL} SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL} SW_MAX = 10; {同 SW_SHOWNORMAL} ``` **返回值可能的错误有:** ``` = 0 {内存不足} ERROR_FILE_NOT_FOUND = 2; {文件名错误} ERROR_PATH_NOT_FOUND = 3; {路径名错误} ERROR_BAD_FORMAT = 11; {EXE 文件无效} SE_ERR_SHARE = 26; {发生共享错误} SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效} SE_ERR_DDETIMEOUT = 28; {超时} SE_ERR_DDEFAIL = 29; {DDE 事务失败} SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务} SE_ERR_NOASSOC = 31; {没有相关联的应用程序} ``` # 例子 ### 用指定程序打开文件 ``` import win32api ShellExecute(Handle, 'open', 'notepad.exe', 'C:\WINDOWS\SchedLgU.Txt', '', 1); # 用火狐浏览器打开网址 ShellExecute(Handle, 'open', 'firefox.exe', 'http://www.sohu.com', '', 1); ``` ### 用默认程序打开文件 ``` import win32api win32api.ShellExecute(0, 'open', '问题.docx', '', '', 1) # 用默认浏览器打开网址 win32api.ShellExecute(0, 'open', 'http://www.sohu.com', '', '', 1) # 打开网页 ``` 原文出处:http://malaoshi.top/show_1IX1X6Q5SCbF.html