如安在Delphi中挪用外部程序转载

上传人:泽*** 文档编号:75625758 上传时间:2022-04-16 格式:DOC 页数:5 大小:217KB
返回 下载 相关 举报
如安在Delphi中挪用外部程序转载_第1页
第1页 / 共5页
如安在Delphi中挪用外部程序转载_第2页
第2页 / 共5页
如安在Delphi中挪用外部程序转载_第3页
第3页 / 共5页
点击查看更多>>
资源描述
如安在 Delphi中挪用外部程序(转载)关键词 :本实例介绍如安在自己的程序中指定的Windows程序。第一启动一个新的项目,在空白的窗体上添加4 个 TButton 组件。添加组件后的窗体如图1 所示。图 1 添加组件后的窗体其中按钮用于以WinExec 函数来挪用指定的Windows程序。 ShellExecute按钮用于以ShellExecute 函数来挪用指定的Windows程序。 CreateProcess按钮和 TerminateProcess按钮用于实现对被挪用程序更全面的操作,前者用于挪用指定的Windows程序,而后者那么用于终止被挪用的Windows 程序。以 WinExec 函数的方式来挪用指定的 Windows 程序的响应代码如下:procedure (Sender: TObject);beginWinExec(,SW_MAXIMIZE);end;其中 WinExec 函数的第1 个参数表示了被挪用程序的途径和名称,第2 个参数表示了程序的显示方式。以 ShellExecute函数的方式来挪用指定的Windows程序的响应代码如下:procedure (Sender: TObject);beginShellExecute,Open, ,PChar(),nil,SWC:_SHOWNORMAL);end;其中ShellExecute用于打开与指定在一路的程序文件。第1 个参数用于指定一个窗口的句柄;第2 个参数指定了程序运行的类别,如Open 或 Print ;第3 个参数指定了想用关联程序打印或打开的一个程序名或文件名;若是第3 个参数中指定了一个可执行文件,那么第4 个参数确实是传递给执行程序的参数;第5 个参数指定了可执行程序的完整途径。最后一个参数用于设定程序运行方式。下面来介绍利用CreateProcess函数和 TerminateProcess函数如何实现对被挪用程序更全面的操作。第一概念 3 个全局:PI:TProcessInformation;SI:TStartUpInfo;MyHandle:Thandle;利用 CreateProcess函数挪用指定程序的响应代码如下:procedure (Sender: TObject);beginFillChar(SI,sizeof(SI),#0);with SI dobegincb:=sizeof(SI);dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW;lptitle:=nil;wShowWindow:=SW_Show;end;CreateProcess(PChar( C:),nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI);end;挪用 CreateProcess函数激活程序后,把它的进程信息存储在变量PI 中,然后通过下面的语句来关闭本实例打开的程序:procedure (Sender: TObject);beginMyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,;TerminateProcess(MyHandle,0);end;程序代码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ShellAPI;typeTForm1 = class(TForm)btnWinExec: TButton;btnCreateProcessOpen: TButton;btnCreateProcessClose: TButton;btnShellExecute: TButton;procedure btnWinExecClick(Sender: TObject);procedure btnCreateProcessOpenClick(Sender: TObject);procedure btnCreateProcessCloseClick(Sender: TObject);procedure btnShellExecuteClick(Sender: TObject);private Private declarations public Public declarations end;varForm1: TForm1;PI:TProcessInformation;SI:TStartUpInfo;MyHandle:Thandle;implementation$R *.dfmprocedure (Sender: TObject);beginWinExec(,SW_MAXIMIZE);end;procedure (Sender: TObject);beginFillChar(SI,sizeof(SI),#0);with SI dobegincb:=sizeof(SI);dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW;lptitle:=nil;wShowWindow:=SW_Show;end;CreateProcess(PChar( C:),nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI);end;procedure (Sender: TObject);beginMyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,;TerminateProcess(MyHandle,0);保留文件,然后按F9 键运行程序,程序运行的初始画面如图2 所示。图 2 程序运行的初始画面单击窗体上的WinExec序,而通过 CreateProcess图3所示。按钮、 ShellExecute按钮和 CreateProcess按钮激活的程序能够通过TerminateProcess按钮都能够激活“记事本”程按钮来终止。 程序运行结果如图 3 程序运行结果本程序介绍了三种挪用指定的Windows程序的方式,如此在大型应用程序中就能够够实现各个模块程序之间的“程序超级链接”。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!