Delphi作为中间历史悠久的编程语言之一,提供了一种快速的方式来编程、编译、打包和部署跨平台应用程序,包括Windows、Linux、Android、IOs和Mac。
在许多情况下,需要在我们的界面之外运行文件和应用程序,例如更新应用程序、备份应用程序、文本文件或任何其他格式,而无需打开相关应用程序。
举其他例子,我们可以毫不费力地从我们的应用程序和通过第三方应用程序发送电子邮件。
ShellExecute 或 WinExec
要运行应用程序或打开我们应用程序外部的文件,并且总是谈到 Windows 环境,我们习惯于使用 WinExec。
但是 WinExec 只能兼容 Windows 3.x 和 Delphi 1 环境,很长一段时间我们不得不使用 ShellExecute。
ShellExecute 在 Windows API 中,我们必须使用WinAPI.ShellAPI单元。
ShellExecute 示例
我们从一个简单的例子开始,从我们的应用程序中打开 Windows Netepad:
uses ShellApi, FMX.Platform.Win;
...
ShellExecute(FmxHandleToHWND(Handle), 'open',PChar('c:\Windows\notepad.exe'), nil, nil, SW_SHOWNORMAL);
前面的例子是在 FMX 中测试的,如果我们想在 VCL 中做同样的事情,它会是这样的:
uses ShellApi;
...
ShellExecute(Handle, 'open',PChar('c:\Windows\notepad.exe'), nil, nil, SW_SHOWNORMAL);
如果我们需要打开记事本但同时显示之前已经保存的文本文件,我们只需添加以下参数,即我们要显示的文件的路径和名称,如下例所示:
ShellExecute(Handle, 'open',PChar('c:\Windows\notepad.exe'), PChar('c:\archivo.txt'), nil, SW_SHOWNORMAL) ;
以下示例在我们设备的默认浏览器中打开一个网站:
uses ShellApi, FMX.Platform.Win;
...
ShellExecute(FmxHandleToHWND(Handle), 'open', 'https://www.delphiw.com',nil,nil, SW_SHOWNORMAL);
请记住:该函数的参数必须是 PChar() 类型,因为它是 Windows API 的函数,并且由于它是用 C 开发的,所以 PChar 将 Delphi 字符串转换为 C 字符串。
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.0727219581604 seconds