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庫中的幾個單元。