ShellExecute使用
函数原型
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PWideChar; ShowCmd: Integer): HINST; stdcall;
参数说明:
hwnd 窗口的句柄
lpOperation 进行的操作,如”open”,”print”,”explore”分别对应”打开”,”打印”,”游览”, 也可以为空(”“),此时表示进行默认的操作。
lpFile 要操作的文件。
lpParameters 如果lpFile指定的是一个可执行文件则表示参数
lpDirectory 操作进行的目录 nShowCmd 程序的运行方式,其取值见上例。
如果这个函数调用成功,将返回实例的句柄。
打开文件、文件夹,也可以直接打开网址
DirPath:=’D:\Picture\’;
ShellExecute(0,’Open’,Pchar(DirPath),nil,nil,SW_SHOW);
ShellExecute(0,’Open’,’www.baidu.com’,nil,nil,SW_SHOW);
ShellExecute(0,’Open’,’C:\Users\Administrator\Desktop1.txt’,nil,nil,SW_SHOW);
在一些XP系统下需要修改为这样才可以打开文件夹
ShellExecute(0,’Open’,Pchar(‘explorer.exe’),Pchar(DirPath),nil,SW_SHOW);
下面是我自己做的一个函数,可以获取异常信息。
function OpenRun(FileName:string):Boolean;
var
ErrCode:DWORD;
begin Result:=ShellExecute(0,’Open’,PChar(FileName),nil,nil,SW_SHOW);
ErrCode:=GetLastError;
if ErrCode<>0 then raise Exception.Create(SysErrorMessage(GetLastError));
end;