如题,ShellExecute在传递参数的时候,如果传递多个参数是怎样的?
如果所传递的参数其中一个是变量,那应该怎样写 ?下面这段代码对不 ?ShellExecute(Handle,'open','bg.exe','1 ExtractFileName(openpicturedialog1.FileName)',nil,SW_SHOW);
如果所传递的参数其中一个是变量,那应该怎样写 ?下面这段代码对不 ?ShellExecute(Handle,'open','bg.exe','1 ExtractFileName(openpicturedialog1.FileName)',nil,SW_SHOW);
ShellExecute(Handle,'Open','NotePad.exe',nil,nil,SW_SHOW);
HWND hwnd, //运行的窗口句拼
LPCTSTR lpOperation, // 运行方式
LPCTSTR lpFile, // 文件及路径
LPCTSTR lpParameters, // 参数(一般程序没有)
LPCTSTR lpDirectory, // 默认搜索路径
INT nShowCmd // 当程序运行后的显示方式
)
1、如果lpFile是一个可执行文件则ShellExecute直接执行它;如果lpFile是一个数据文件,则ShellExecute首先在注册表中查找和这种类型数据文件相关练的可执行文件,如果找到则执行这个可执行文件,否则启动失败,函数返回值为ERROR_FILE_NOT_FOUND
2、lpParameters是参数,如果lpFile是EXE文件,则参数有用,否则没用。
3、lpDirectory搜索路经可以不指定。
4、lpOperation是打开方式,可以为
"open",lpFile必须是一个文件
"explorer", lpFile必须是一个文件夹
"print"三中类型,lpFile必须是一个文件
CmdShow Long,为窗口指定可视性方面的一个命令。请用下述任何一个常数
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
另见楼主另一贴:
http://community.csdn.net/Expert/topic/5320/5320879.xml?temp=.7111322
ShellExecute(Handle,'open','bg.exe',变量S1 + ' ' + 变量S2,nil,SW_SHOW);或者你干脆这样:var
LPS : string;
S1,S2 : string;
begin
S1 := ....
S2 := .......
LPS := S1 + S2;
ShellExecute(Handle,'open','bg.exe',LPS,'F:\',SW_SHOW);
...
end;意思你应该是明白的。要么是我把你的本意理解偏了
@echo off
if "%1" == "" exit
echo %2
B.bat
@echo off
call a.bat del delphi
pause这样批处理显示的就是delphi而我想在把del作为第一个参数,delphi作为第二个参数,然后用程序调用如下:var
cF:string;
dF:string;
sF:string;begin cF:='del';
dF:='delphi';
sF:=cF+dF;
ShellExecute(Handle,'open','a.bat',PChar(sF),nil,SW_SHOW);end;这样运行后批处理没有接受到第二个参数
@echo off
if "%1" == "" exit
echo %1
echo %2
pausevar
cF:string;
dF:string;
sF:string;
begin
cF:='del';
dF:='delphi';
sF:=cF+' '+dF;
ShellExecute(Handle,'open','a.bat',PChar(sF),'c:\',SW_SHOW);
end;运行结果是:
del
delphi
按任意键继续...