Shellexec是一个控制台应用程序,可让您运行程序(作为当前用户或管理员),在关联应用程序中打开文档,在默认浏览器中查看网页等等。这是ShellexeCuteex功能的“控制台包装器”。

编译的二进制文件:
Shellexec_win64.zip(〜96 KB)
Shellexec_win32.zip(〜72 kb)
ShellExec FILE [-o Operation] [-p Parameters] [-d Directory] [-s ShowCommand]
[-w [finish|idle]] [-t TIME] [-hwnd WindowHandle] [-h] [-V] [--license] [--home] [--source]
选项对病例敏感。方括号中的选项是可选的。
-o , --operation=STR
要执行的动作。默认操作是打开的。请参阅下面的描述。
-p , --params=STR
如果文件指定可执行文件,则此参数是一个字符串,将要传递给应用程序的参数指定。
-d , --directory=DIR
行动的工作目录。
-s , --show-cmd=STR
此参数指定打开应用程序时的显示方式。默认显示命令是SW_SHownormal 。请参阅下面的描述。
-w , --wait=[FOR]
完成或闲置。默认值:完成。如果您没有在-t选项中指定等待时间,则将使用无限( -t=infinite )。请参阅下面的描述。
-t , --wait-time=TIME
超时间隔(用于-w选项)。可用时间单元: ms (毫秒), s (秒), m (分钟), h (小时), d (天)。如果未指定单位,将使用毫秒。价值无限意味着没有时间限制。
-hwnd , --window-handle=INT
用于显示UI或错误消息的父窗口的句柄。
-h , --help
显示帮助。
-V , --version
显示应用程序版本。
--license
显示程序许可证。
--home
在默认浏览器中打开程序主页。
--source
使用程序的源文件在GitHub上打开程序页面。
文件名或目录或URL或对象可以执行指定操作。
打开
打开文件参数指定的项目。该项目可以是文件,文件夹或URL。
编辑
启动编辑并打开文档进行编辑。如果文件不是文档文件,Shellexec将失败。
探索
探索由文件指定的文件夹。
寻找
在-d选项指定的目录中启动搜索。
打印
打印文件指定的文件。如果文件不是文档文件,则程序会失败。
runas
启动以管理员的方式启动应用程序。用户帐户控制(UAC)将提示用户同意运行应用程序的应用程序或输入用于运行该应用程序的管理员帐户的凭据。
特性
显示文件或文件夹的属性。
更多信息(lpoperation):https://docs.microsoft.com/en-us/windows/winbi/win32/api/shellapi/nf-shellapi-shelllexecutew
更多信息(lpverb):https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shellapi-shellexecuteinfow
0 | SW_HIDE | Hide
隐藏窗口并激活另一个窗口。
1 | SW_SHOWNORMAL | ShowNormal | SW_NORMAL | Normal
激活并显示一个窗口。如果将窗口最小化或最大化,则系统将其恢复为原始大小和位置。第一次显示窗口时,应用程序应指定此标志。
2 | SW_SHOWMINIMIZED | ShowMinimized | Minimized
激活窗口并将其显示为最小化窗口。
3 | SW_SHOWMAXIMIZED | ShowMaximized | Maximized | Maximize
激活窗口并将其显示为最大化窗口。
4 | SW_SHOWNOACTIVATE | ShowNoActivate | NoActivate
在其最新的大小和位置中显示一个窗口。此值类似于SW_SHWOWNFormal,除了未激活窗口。
5 | SW_SHOW | Show
激活窗口并以当前大小和位置显示。
6 | SW_MINIMIZE | Minimize
最小化指定的窗口并激活z顺序中的下一个顶级窗口。
7 | SW_SHOWMINNOACTIVE | ShowMinNoActive | MinNoActive
将窗口显示为最小化的窗口。此值类似于SW_SHOWMINIMITION,除了未激活窗口。
8 | SW_SHOWNA | ShowNA
显示当前大小和位置的窗口。此值类似于sw_show,除了未激活窗口。
9 | SW_RESTORE | Restore
激活并显示窗口。如果将窗口最小化或最大化,则系统将其恢复为原始大小和位置。恢复最小化窗口时,应用程序应指定此标志。
10 | SW_SHOWDEFAULT | ShowDefault
根据启动应用程序的程序传递给createProcess函数的启动曲线结构中指定的sw_值设置show状态。
11 | SW_FORCEMINIMIZE | ForceMinimize
最小化窗口,即使拥有窗口的线程没有响应。只有在从其他线程中最小化窗口时才能使用此标志。
更多信息:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser/nf-winuser-showwindow#parameters
结束
等待直到运行程序(在文件参数中指定)完成其操作,或直到超时间隔( -t选项)经过。
闲置的
等待指定的程序完成处理其初始输入,并且正在等待没有输入待处理的用户输入,或者直到超时间隔( -t选项)已经过去之前。
更多信息:
https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitforsingleobject
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-waitforinputidle
0-成功
任何其他值 - 错误
启动系统计算器:
ShellExec calc
在系统文本编辑器Notepad中打开“主机”文件:
ShellExec notepad -o runas -p "C:WindowsSystem32driversetchosts"
在默认浏览器中显示给定网站:
ShellExec https://example.com
在与INI文件关联的文本编辑器中打开“ win.ini”文件:
ShellExec "C:Windowswin.ini"
在默认图形查看器中打开JPG文件:
ShellExec "D:picturesmy picture.jpg"
打开BAT文件以在默认编辑器中进行编辑,并等待程序完成:
ShellExec "D:batch_filestest.bat" -o edit -w=finish
公共领域。
您需要Embarcadero Delphi XE2或更新(免费的社区版本是Eough)。
您还需要JPLIB库中的几个单元。