Delphi编程调用指定的Windows程序

时间:2010-01-30 12:18:59  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:v/Delphi/2007-11-01/b238e04f6291e2032ebc7f1f6caff507.gif" /> 其中WinExec按钮用于以WinExec函数来调用指定的Windows程序。ShellExecute按钮用于以ShellExecute函数来调用指定的Windows程序。CreateProcess按钮和TerminateProcess按钮用于实现对被调用程序更全面的操作,前者用于调用指定的Windows程序,而后者则用于终止被调用的Windows程序。以WinExec函数的方式来调用指...
  正文:本实例介绍如何在自己的程序中调用指定的Windows程序。
首先启动一个新的项目,在空白的窗体上添加4个TButton组件。添加组件后的窗体如图1所示。

图1 添加组件后的窗体
其中WinExec按钮用于以WinExec函数来调用指定的Windows程序。ShellExecute按钮用于以ShellExecute函数来调用指定的Windows程序。CreateProcess按钮和TerminateProcess按钮用于实现对被调用程序更全面的操作,前者用于调用指定的Windows程序,而后者则用于终止被调用的Windows程序。
以WinExec函数的方式来调用指定的Windows程序的响应代码如下:

procedure TForm1.btnWinExecClick(Sender: TObject);
begin
   WinExec(’Notepad.exe’,SW_MAXIMIZE);
end;

其中WinExec函数的第1个参数表示了被调用程序的路径和名称,第2个参数表示了程序的显示方式。
以ShellExecute函数的方式来调用指定的Windows程序的响应代码如下:

procedure TForm1.btnShellExecuteClick(Sender: TObject);
begin
   ShellExecute(Application.Handle,’Open’,’NotePad.exe’,PChar(’C:AutoExec.bat’),nil,SW_SHOWNORMAL);
end;

其中ShellExecute用于打开与指定文件关联在一起的程序文件。第1个参数用于指定一个窗口的句柄;第2个参数指定了程序运行的类别,如’Open’或’Print’;第3个参数指定了想用关联程序打印或打开的一个程序名或文件名;如果第3个参数中指定了一个可执行文件,那么第4个参数就是传递给执行程序的参数;第5个参数指定了可执行程序的完整路径。最后一个参数用于设定程序运行方式。
下面来介绍利用CreateProcess函数和TerminateProcess函数如何实现对被调用程序更全面的操作。
首先定义3个全局变量:

PI:TProcessInformation;
SI:TStartUpInfo;
MyHandle:Thandle;

利用CreateProcess函数调用指定程序的响应代码如下:

procedure TForm1.btnCreateProcessOpenClick(Sender: TObject);
begin
   FillChar(SI,sizeof(SI),#0);
   with SI do
    begin
       cb:=sizeof(SI);
       dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW;
       lptitle:=nil;
       wShowWindow:=SW_Show;
    end;
     CreateProcess(PChar(’C:WINNTNotepad.exe’),
     nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI);
  end;

调用CreateProcess函数激活C:WINNTNotepad.exe程序后,把它的进程信息存储在变量PI中,然后通过下面的语句来关闭本实例打开的C:WINNTNotepad.exe程序:

procedure TForm1.btnCreateProcessCloseClick(Sender: TObject);
begin
   MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,PI.dwProcessId);
   TerminateProcess(MyHandle,0);
end;

程序代码如下:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI;
type
 TForm1 = 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 }
Delphi编程调用指定的Windows程序》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12661.html


关键字:

关于《Delphi编程调用指定的Windows程序》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td