让Delphi使用带参数来调用外部可执行文件(EXE文件)

{*********************************************************}
{                                                                                               }
{         使用ShellExecute带参数调用外部Exe文件      }
{                                                                                               }
{                      版权所有 (c) 2005,2008 江智勇             }
{                  E_Mail:jzymail2008@163.com                     }
{             Msn:jiangzhiyong2008@msn.com                   }
{                                QQ:89461298                                    }
{                                                                                             }
{********************************************************}

 

假如先编译一个Exe文件,在工程里面写下如下代码:

工程一、program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
var
 Str:string;
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Str:=ParamStr(1);  //在运行时去读是否有带参数值是:‘jiang’,如果没有则结束自己。
     if Str<>'jiang' then
     begin
      Application.Terminate;
      Exit;
    end;
  Application.Run;
end.

 

工程二的调用:program Project2;

procedure TForm1.Button1Click(Sender: TObject);
var
   sFileName,sParam,sFilePath: string;
begin
   sFileName:=ExtractFilePath(Application.ExeName)+'Project1.exe';
   sFilePath:='ExtractFilePath(Application.ExeName)';
   sParam:='jiang';
   ShellExecute(0, 'Open', PChar(sFileName), PChar(sParam), PChar(sFilePath), SW_SHOW);
end;

 

工程一只能通过工程来调用才可以打开,如果单独打开是不行的。因为没有传参。当然传参过程中可以进行加密。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大家都知道,Delphi语言的功能是相当强大的,由于其拥有很好的扩展性,因此很多公司、团队和个人开发了辅助Delphi编程的工具软件。GExperts就是一个这样的免费而且优秀的软件(在我的印象中,好像只有控件包中的Rxlib和Mwedit能够与之媲美)。GExperts是一个Delphi的扩展功能软件,也叫做Experts,我现在使用的版本是1.32。   下载完毕后,执行安装程序,然后再进入Delphi(在安装GExperts之前,请关闭正在运行的Delphi),你会发现在Delphi选单栏中增加了一个选单项目:GExperts,在其下面还有很多的子选单,让我们一个个来看。   1. Procedure List:过程列表。Delphi中缺少像VB那样在编辑窗口中位于上方的对象--事件过程列表。此项功能正是在一定程度上弥补了这一点。   该窗口相当详细地列出了你所使用的窗口中所有的过程和函,通过鼠标双击可以直接定位到该过程或者函的代码处。另外你还可以将过程的代码复制到剪贴板中,这个功能在写相关的技术文档的时候特别有用。此外你还可以通过“Search”选项来迅速地找到所需要的函,以省却上下滚动查找的麻烦,如果你的窗口或者函库中具有大量的过程函,这一点是很有益处的。   2. Expert Manager:专家管理。用来让你方便地管理所安装的所有的Expert的一个功能。   3. Grep Search:查询。在开发比较大的程序时,我们经常需要搜索程序中的某项内容,Delphi自身所的查询功能不够强大,而GExperts的这个Grep可以完成更多的任务。如图2所示,首先输入你想查找的内容,然后在选项中可以选择一下内容:是否大小写敏感、是否忽略注释内容、是否整字模式、是否搜索DFM文件、是否使用表达式进行搜索(表达式搜索是Grep内含的一项强大的功能);在“Where”选项中你还可以选择是否只选择当前文件、是否搜索项目中的所有文件、是否搜索现在打开的文件、是否搜索整个目录,如果你选择了搜索整个目录,那么还有不少关于目录的设置可以供你选择。   图3是搜索后显示结果的窗口,非常清晰明了,将各个文件内搜索到的结果用一种类似于Section List的样式清晰地排列出来,而每个结果除了表明行号以外,还用选中的方式着重显示出来。Grep功能还可以脱离Delphi直接在Windows中运行。   4. Message Dialogue:对话框生成器。由于这个对话框生成器用的是MessageDlg函,而不是MessageBox函,所以和中文的兼容性不太好。   5. Backup Project:备份工具。据备份是我们应该养成的好习惯,这里也考虑到了,你什么都不用操心,一个按钮就可完成备份工作。它为你准备了常用的Delphi文件类型,当然你可以加入特定的文件后缀,并且还可以选择为压缩后的文件加上密码,这样别人就很难看到你的文件了。   6. Clear Directories:清除目录。在开发一个程序的过程中,总会生成很多的临时文件,比如说Delphi自动生成的~打头的备份文件,还有很大的DSM中间文件,这些文件其实我们并不需要,但是手工删除实在太麻烦了,第一因为它们量不少,第二每次你退出Delphi开发环境,这些文件又会自动生成,所以就有了这个很体贴人心的清除目录中不需要文件的功能。它已经为你设定了常用的需要清除的文件后缀,你也可以增加新的后缀,然后鼠标轻轻一按,目录里就干干净净了。   7. Clipboard History:剪贴板记录。这个功能也是非常实用的,它可以将每一次剪贴动作都记录下来,当你需要的时候,就可以快速查找到所需要的内容,在进行比较复杂的编辑时,你再也不需要因为剪贴板只能保存一次内容而犯愁了,这个功能可以为你保存最近的20次使用情况,如果你需要,还可以保存更多。因为它采用了在列表框中显示剪贴的首行内容和文本框中显示全部内容,所以,既不占用太多屏幕空间,又可以做到一目了然。   8. Favorite file:常用的文件。在开发一个软件的时候,你会用到很多的外部文件,比如图像文件据库文件、文本文件以及相关的开发资料。有了这个功能,你不需要每次都记住那些文件藏在硬盘的哪一个角落,你可以根据文件的性质,建立起文件夹树,在每一个文件夹下面可以加入你所需要的文件,通过双击文件就可以直接打开这个文件。   9. Class Browser:类浏览器。这个功能扩充了Delphi自身所的同样功能,使用起来更加直观,并且增加了功能强大的打印功能。   10. Source To HTML:将源代码转化为HTML格式。如果你是一个像我这样的自由软件作者,经常需要将源代码发布到网页上,这项功能能帮助你完成这个任务。转化后的HTML代码可以完整地保留颜色、样式、字体等,并且可以让你自己定制。   11. PE Information:文件头信息。在这个功能中你打开一个可执行文件,然后就能知道关于这个文件的MS-DOS文件头信息、PE文件格式文件头信息、需要的DLL文件信息、输出的函信息(比如说DLL文件)。   12. IDE Menu ShortCuts:编辑环境选单快捷键。如果你觉得Delphi原来设置的快捷键不是很顺手,那么你可以在这里将它们一一改动。在这里,你会看到一个和Delphi的开发环境一模一样的选单,选择你需要改动的选单项目,然后改变或者设置新的快捷键就可以了。   13. Project Dependences:项目文件调用关系分析。在一个比较复杂的项目开发中,各个文件之间的调用关系不是凭印象可以弄清楚的,现在有了这个分析工具,你可以查阅到某个文件调用了哪些单元、被哪些单元调用了,以及调用的单元又被别的哪些单元文件调用过的交叉列表。Delphi不会主动删除你增加了但是又没有使用的单元文件,有了这个分析工具可以对自己程序中的某个单元调用其他单元的情况看得一清二楚。另外我们还可以通过这个工具来了解某些函库单元、公用文件调用情况。   14. Code Proofreader:代码自动校验。这是一个功能强大的工具,它可以自动修正你在Delphi编程过程中的打字错误,就像我们已经在Word中习惯的那样。你可以输入和输出相关的字典文件。利用这个功能,一方面可以纠正自己经常容易打错的字,另一方面,还可以将它作为一种扩展宏的作用。   15. Project Option Set:项目设置。如果你在进行不同项目的开发的时候,需要进行一些不同的设置,比如编译器中的有关选项,如果在不同的项目切换时,经常要做这样的重复工作,似乎效率太低了。这个功能可以为不同的项目设置几组不同的值,你可以根据自己的需要将几组设置分别存盘,在需要的时候调入。为了方便用户,每一个具体的值都有简短的提示说明其含义。
EhLib.VCL 9.5内部版本9.5.012专业版。 ---------------------------------------------- 该库包含Borland Delphi版本7、9的组件和类。 Developer Studio 2006,Delphi 2007,Embarcadero RAD Studio 2009-XE10.3,Lazarus。 目录 ----------------- 总览 安装库 安装帮助 示范节目 注册和价格 其他资讯 关于作者 从哪儿开始。 ------------------- 从主要的Demo项目开始概述库 。\ Demos \ Bin \ MainDemo.Exe。 (已编译的演示文件在该库的评估版中可用) 如果您使用了库的早期版本,则可以阅读摘要 的新功能和更改中的内容history-eng.html。 此版本库中有关新功能的更多详细信息 可以在文件中找到-关于EhLib 9.5 Eng.doc 要在IDE中安装该库的新版本,请使用安装程序 。\ Installer \ EhLibInstaller.exe 如果安装时有任何问题,请写信给ehlib支持 地址[email protected] 您还可以按照以下说明在库IDE中手动安装文件 第2章安装库 安装后,请确保所有已安装组件的可操作性。 为此,请打开IDE,编译并启动一个主要的演示项目。 。\ Demos \ MainDemo \ Project1_XE2.dpr 阅读下一个文件,以获取有关使用库组件的完整说明: 。\ Hlp \ ENG \“ EhLib-用户指南.doc” 在文件中阅读有关EhLib for Lazarus的信息-Lazarus \ readme.txt 总览 -------- 该库包含几个组件和对象。 TDBGridEh组件 TDBGridEh提供TDBGrid的所有功能 并添加了一些新功能,如下所示: 允许选择记录,列和矩形区域。 可以对应于多个/所有列的特殊标题。 能够显示总和/计/其他字段值的页脚。 自动调整列大小以将网格宽度设置为等于客户端宽度。 能够更改行和标题的高度。 允许自动中断单行长标题和据行 到多行。 标题可以充当按钮,并可以选择显示排序标记。 自动排序标记。 能够用省略号截断长文本。 查找列表可以显示几个字段。 在查找字段中进行增量搜索。 冻结的列。 DateTime选择器支持TDateField和TDateTimeField。 允许根据字段值显示TImageList中的位图。 允许隐藏和跟踪水平或垂直滚动​​条。 允许隐藏列。 允许显示冻结,页脚和据行的3D框架。 允许绘制备忘字段。 多行就地编辑器。 比例滚动与据集的排序无关。 自动显示布尔字段的复选框。允许显示 其他类型字段的复选框。 具有保存和还原布局的程序(可见列,列 注册表或ini文件中的顺序,列宽,排序标记,行高)。 允许显示提示(工具提示)以显示单元格中不适合的文本。 允许将据导出为Text,Csv,HTML,RTF,XLS和内部格式。 允许从文本和内部格式导入据。 可以对各种据集中的据进行排序。 可以过滤各种据集中的据。 当DBGridEh连接到TMemTable类型的据集时,它允许: 在不移动活动记录的情况下查看所有据。 显示TMemTable记录的树型结构。 在SubTitle过滤器的下拉列表中自动形成值列表。 根据所选库伦创建分组记录。 TDBVertGridEh组件 在“垂直方向”中显示据集中的一条记录的组件。 有一个特殊的列来显示字段标题 可以像DBGridEh中一样自定义就地编辑器和单元格据。 TDBLookupComboboxEh组件 提供TDBLookupCombobox的所有功能并添加 几个新功能如下: 可以有平面样式。 允许只将值分配给KeyValue属性 显示文本属性。 允许将值键入(分配)到据列表中未包含的Text属性 (样式= csDropDownEh)。 允许将KeyValue和Text保持为互不影响的值。 当KeyField,ListField,ListSource,DataField和DataSource生效 属性为空。 下拉列表可以: 显示标题 有上浆力, 自动将宽度设置为列表字段DisplayWidth之和(宽度= -1), 用户按下按键时自动掉线。 编辑按钮可以: 显示下拉,省略号或位图图像。 有指定的宽度。 还有其他事件:OnKeyValueChanged,OnButtonClick。 TDBSumList组件 此组件用于总计一个记录中的记录的总量。 TDataSet具有动态更改。组件保留TDBSum的列表 对象,其中包含组操作的类型(goSum或goCount) 和名称总和字段(无需goCount字段名称)。 TPrintDBGridEh组件 TPrintDBGridEh提供用于预览和预览的属性和例程。 具有以下功能的TDBGridEh组件的打印: 能够垂直扩展行,直到打印所有文本。 缩放网格以使其适合页面宽度的能力。 能够打印/预览网格标题。 能够打印/预览页面标题和页面页脚 指定当前页面,当前日期,当前时间和/或静态的宏 文本。 自动打印/预览TDBGridEh的选定区域 不为空。 能够在网格之前和之后打印/预览富文本。 TPreviewBox组件 TPreviewBox使您可以创建可自定义的运行时预览。 TPrinterPreview对象 TPrinterPreview允许您将可打印据记录在缓冲区中以进行跟踪 将它们输出到屏幕上并发送到打印机。TPrinterPreview具有所有功能,并且 属性与TPrinter对象中的属性相同。您可以类似地使用TPrinterPreview对象 TPrinter的功能,除了一些细节。在TPrinter Printer.Canvas.Handle和 Printer.Handle相同,但在TPrinterPreview中PrinterPreview.Canvas.Handle 表示图元文件,其中的据和PrinterPreview.Handle的内容相同 代表Printer.Handle。这意味着您必须使用 用于绘制操作的PrinterPreview.Canvas.Handle(DrawText,DrawTexteEx等) 并在返回有关以下信息的函使用PrinterPreview.Handle 打印机功能(GetDeviceCaps等)。全局功能PrinterPreview 返回默认的PrinterPreview对象,并以默认预览形式显示据。 TDBEditEh组件 表示可以显示和编辑字段的单行或多行编辑控件 在据集中或可以用作非据感知的编辑控件。 TDBDateTimeEditEh组件 表示可以显示和编辑的单行日期或时间编辑控件 据集中的日期时间字段,或可用作非据感知的编辑控件。 TDBComboBoxEh组件 表示结合了编辑框的单行或多行编辑控件 有可滚动列表,并且可以显示和编辑据集中的字段,或者可以 用作非据感知组合编辑控件。 TDBNumberEditEh组件 表示可以显示和编辑字的单行字编辑控件 据集中的字段或可以用作非据感知的编辑控件。 TPropStorageEh,TIniPropStorageManEh,TRegPropStorageManEh组件 组件实现了在设置中存储组件属性的技术 存储,如ini文件,注册表等。 TMemTableEh组件 据集,将据保存在内存中。它可能考虑为 记录。 此外,它: 支持一个特殊的接口,该接口允许DBGridEh组件查看所有 据而不移动活动记录。 允许从TDataDriverEh对象(DataDriver属性)获取据。 允许卸载更改回DataDriver中,可操作或推迟(在 CachedUpdates属性的相关性)。 允许在客户端上创建主/明细关系(过滤记录) 或在外部源上(更新参数[Params]并需要据 从DataDriver)。 允许一次(无动态支持)排序据,包括 计算和查找字段。 允许在设计时创建和填充据,并将据保存在的dfm文件中 形成。 允许以树的方式进行记录。每条记录可以有一条记录 元素分支和本身是其他父母记录的元素。 组件TDBGridEh支持显示这些组件的树型结构 记录。 允许连接到其他TMemTableEh的内部阵列(通过 ExternalMemData属性)并使用据:排序,过滤,编辑。 具有用于在列表的一列中请求所有唯一值列表的接口 记录组,忽略据集的本地过滤器。TDBGridEh使用此 属性,用于自动填充字幕的DropDownBox中的列表 过滤单元。 TDataDriverEh组件 执行两项任务: 将据传送到TMemTableEh。 处理TMemTableEh的更改记录(将它们记录在其他据集中, 或调用事件以处理程序中的更改)。 TSQLDataDriverEh 具有四个TSQLCommandEh类型的对象的DataDriver:SelectCommand, DeleteCommand,InsertCommand,UpdateCommand,GetrecCommand。 TSQLDataDriverEh无法将查询传输到服务器,但会调用全局 (对于应用程序)执行SQL必须编写的事件 服务器上的表达式。 TBDEDataDriverEh,TIBXDataDriverEh,TDBXDataDriverEh和TADODataDriverEh组件。 这些是SQLDataDrivers,可以使用以下命令将查询传递到服务器 据访问的相应驱动程序。 -------------------- 2.安装库 -------------------- -------------------- 2.1自动安装库 -------------------- 从“安装程序”文件夹中运行EhLibInstaller.exe程序以在以下位置安装EhLib Delphi / C ++ Builder IDE。该程序创建文件夹以保持EhLib二进制 和其他重新整理的文件,将重新整理的文件复制到创建的文件夹, 编译程序包,在IDE中注册程序包并编写重新格式化的路径 在注册表中。 如果您具有可执行的安装程序(例如,EhLibSetupD7Eval.exe) 那么您只需要运行程序并遵循安装过程即可。自动设置 将所有单元写入必要的目录,在IDE中安装软件包和帮助文件。 -------------------- 2.2手动安装库 ------------------- 按照以下说明从EhLib归档文件安装文件: - 2.2.1。对于RAD Studio XE2(Delphi)或更高版本: -------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值