从delphi代码执行并运行应用程序和文件

Delphi编程语言提供了一种跨平台编写、编译、打包和部署应用程序的快速方法。尽管Delphi创建了一个图形用户界面,但您肯定会有很多次希望从Delphi代码中执行程序。假设您有一个使用外部备份实用程序的数据库应用程序。备份实用程序从应用程序获取参数并存档数据,而您的程序则等待备份完成。...

Delphi编程语言提供了一种跨平台编写、编译、打包和部署应用程序的快速方法。尽管Delphi创建了一个图形用户界面,但您肯定会有很多次希望从Delphi代码中执行程序。假设您有一个使用外部备份实用程序的数据库应用程序。备份实用程序从应用程序获取参数并存档数据,而您的程序则等待备份完成。

Man using a computer behind glass

也许您想打开文件列表框中的文档,只需双击它们,而无需首先打开相关程序。想象一下,您的程序中有一个链接标签将用户带到您的主页。关于通过默认的Windows电子邮件客户端程序直接从Delphi应用程序发送电子邮件,您怎么看?

shellexecute

要在Win32环境中启动应用程序或执行文件,请使用ShellExecute Windows API函数。有关返回的参数和错误代码的完整说明,请查看ShellExecute的帮助。您可以打开任何文档,而不知道与之关联的程序链接是在Windows注册表中定义的。

下面是一些shell示例。

运行记事本

uses ShellApi;...ShellExecute(Handle, 'open','c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ;

用记事本打开sometext.txt

ShellExecute(Handle,'open','c:\windows\notepad.exe','c:\SomeText.txt', nil, SW_SHOWNORMAL) ;

显示“delphidownload”文件夹的内容

ShellExecute(Handle,'open', 'c:\DelphiDownload', nil, nil, SW_SHOWNORMAL) ;

根据文件扩展名执行文件

ShellExecute(Handle, 'open', 'c:\MyDocuments\Letter.doc',nil,nil,SW_SHOWNORMAL) ;

下面介绍如何查找与扩展关联的应用程序。

使用默认的web explorer打开网站或*.htm文件

ShellExecute(Handle, 'open','http://delphi.about.com',nil,nil, SW_SHOWNORMAL) ;

发送带有主题和邮件正文的电子邮件

var em_subject, em_body, em_mail : string;begin em_subject := 'This is the subject line'; em_body := 'Message body text goes here'; em_mail := 'mailto:[email protected]?subject=' + em_subject + '&body=' + em_body ; ShellExecute(Handle,'open', PChar(em_mail), nil, nil, SW_SHOWNORMAL) ;end;

下面是如何发送带有附件的电子邮件。

执行一个程序并等待它完成

以下示例使用ShellExecuteEx API函数。

// Execute the Windows Calculator and pop up// a message when the Calc is terminated.uses ShellApi;...var SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string;begin ExecuteFile:='c:\Windows\Calc.exe'; FillChar(SEInfo, SizeOf(SEInfo), 0) ; SEInfo.cbSize := SizeOf(TShellExecuteInfo) ; with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile) ;{ParamString can contain theapplication parameters.}// lpParameters := PChar(ParamString) ;{StartInString specifies thename of the working directory.If ommited, the current directory is used.}// lpDirectory := PChar(StartInString) ; nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode) ; until (ExitCode <> STILL_ACTIVE) or Application.Terminated; ShowMessage('Calculator terminated') ; end else ShowMessage('Error starting Calc!') ;end;

  • 发表于 2021-09-15 03:48
  • 阅读 ( 143 )
  • 分类:编程

你可能感兴趣的文章

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

使用声音和动画等多媒体文件的游戏和其他类型的应用程序必须随应用程序一起分发额外的多媒体文件,或者将文件嵌入可执行文件中。 您可以将原始数据作为资源添加到应用程序中,而不是分发单独的文件供应用程序使用...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 194 )

将项目添加到tpopup delphi菜单

在Delphi应用程序中使用菜单或弹出菜单时,在大多数情况下,都是在设计时创建菜单项的。每个菜单项都由一个TMenuItem Delphi类表示。当用户选择(单击)一个项目时,OnClick事件将被触发,以供您(作为开发人员)获取该事件并...

  • 发布于 2021-09-06 15:10
  • 阅读 ( 166 )

了解delphi编程的基础知识

...Turbo)Pascal到Delphi 2005的演变,例如Delphi演变为一个快速应用程序部署框架,旨在为在线和移动交付提供高性能、可扩展的应用程序。 之后,探索Delphi实际上是什么,以及如何安装和配置其开发环境。在此基础上,探索DelphiIDE...

  • 发布于 2021-09-06 15:13
  • 阅读 ( 185 )

理解delphi项目和单元源文件

简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 175 )

程序退出时delphi中的内存泄漏通知

...更丰富。 “新”内存管理器最出色的功能之一是允许应用程序注册(和注销)预期内存泄漏,并在程序关闭时报告意外内存泄漏。 使用Delphi创建WIN32应用程序时,必须确保释放动态创建的所有对象(内存)。 当程序无法释...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 168 )

delphi中的sql

...、更新、查找数据位置等。 delphi中的tquery 如果要在应用程序中使用SQL,您将非常熟悉TQuery组件。Delphi使您的应用程序能够通过TQuery组件直接使用SQL语法来访问Paradox和dBase表(使用本地SQL—ANSI标准SQL的子集)、本地InterBase服...

  • 发布于 2021-09-08 10:40
  • 阅读 ( 187 )

德尔福单元剖析(德尔福初学者版)

...占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一个应用程序或表单模板开始。项目由创建目标应用程序所需的所有文件组成。 选择“查看项目管理器”...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 181 )

如何构建没有gui的控制台应用程序(build console applications with no gui)

​控制台应用程序是纯32位Windows程序,在没有图形界面的情况下运行。启动控制台应用程序时,Windows会创建一个文本模式控制台窗口,用户可以通过该窗口与应用程序进行交互。这些应用程序通常不需要太多的用户输入。控制...

  • 发布于 2021-09-10 22:34
  • 阅读 ( 251 )

用delphi和ado编辑excel表格

...何修改Excel工作表:编辑、添加和删除行。 将数据从Delphi应用程序传输到Excel。如何创建工作表并使用MS Access数据库中的自定义数据填充工作表。 如何连接到microsoft excel Microsoft Excel是一个功能强大的电子表格计算器和数据分...

  • 发布于 2021-09-11 00:21
  • 阅读 ( 242 )

在delphi应用程序中使用tclientdataset的指南

为您的下一个Delphi应用程序寻找单文件、单用户数据库?需要存储一些特定于应用程序的数据,但不想使用注册表/INI/或其他什么? Delphi提供了一个本地解决方案:TClientDataSet组件——位于组件调色板的“数据访问”选项卡上...

  • 发布于 2021-09-15 03:38
  • 阅读 ( 153 )
复读の姬
复读の姬

0 篇文章

相关推荐