delphi中shellExecute的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中shellExecute的使用相关的知识,希望对你有一定的参考价值。

我想通过shellExecute调用执行cmd命令 brcc32 编译资源文件 代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
se:SHELLEXECUTEINFO;
begin
se.cbSize:=SizeOf(SHELLEXECUTEINFO) ;
se.Wnd:=0;
se.lpVerb:='open';
se.lpFile:='c:\windows\system32\cmd.exe';
se.lpParameters:='brcc32 E:\project\Test\my.rc';
se.lpDirectory:=nil;
se.nShow:=SW_SHOWNORMAL;
se.fMask := SEE_MASK_NOCLOSEPROCESS;
se.hInstApp:=0;
ShellExecuteEx(@se);
WaitForSingleObject(se.hProcess,INFINITE);
end;
我想问下哪里错了吗?请高手给出正确的方法 ,谢谢

se.lpParameters:='brcc32 E:\project\Test\my.rc';
改为
se.lpParameters:='/c brcc32 E:\project\Test\my.rc';
参考技术A 使用语句延迟一下看看.

请问delphi中ShellExecute的功能,和直接用show有啥不同?

都是显示所创建的新界面,有什么不一样,在实现什么功能时需要使用ShellExecute?
并且 我用ShellExecute 打开的界面 无法对界面的按键等的进行操作 这个是与ShellExecute有关吗?

参考技术A ShellExecute 和winexec相似,也是用于打开文件的,不同的是winexec只能打开一些应用程序(如*.exe),而shellexecute可以打开的不止,如*.txt可以也可以打开,而winexec不能 参考技术B 楼主还没理解如何打开界面 show是delphi 的内部函数,shellExecute是shellapi提供的系统外部函数用于打开其他exe程序,内部元素控制起来当然很容易了,外部元素也不是不能控制,需要很复杂的过程才能控制 参考技术C 让注册表马上生效而不重启的最有效最直接办法就是
结束 Explorer.exe 文件 然后在
文件/新建任务/数据 explorer 就可以更新了

可以使用 C# 的 Process.Start();
Process.Kill();
具体方法可以查询百度哦
参考技术D ShellExecute可以打开其他的EXE文件本回答被提问者和网友采纳

以上是关于delphi中shellExecute的使用的主要内容,如果未能解决你的问题,请参考以下文章

delphi中shellExecute的使用

delphi shellexecute怎么使用

Delphi的shellexecute用法

求Delphi中createprocess、pipe、winexec、shellexecute的详细用法

Delphi ShellExecute

delphi执行ShellExecute