Delphi程序中怎样调用别的可执行程序?

Delphi程序中怎样调用别的可执行程序?,第1张

在 Delphi 程序中调用别的散知可执运腊行程序,可以使用三种方法:

1、冲悄消WinExec

示例代码:

WinExec('Notepad.exe Readme.txt', SW_SHOW)//运行记事本

2、ShellExecute

//调用记事本 

ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOWNORMAL)

3、CreateProcess

类方法调用

inherited(继承):就是调用父类的函数。如果不带参数就是默认调用父类的同名函数;如果带参数则表明子类中的桥袜函数的参数个数可能比祖先类汪颂要多取其中的几个参数传过去

例如

[delphi] view plaincopy

祖先类有个敏陵激函数 Create(AName:string)

子类有个函数 Create(AName:stringAComponent:TObject)override

那么子类的Create函数内就可以这样调用祖先类:

procedure TAClass.Create(AName:stringAComponent:TObject)

begin

Inherited Create(AName)

end

DELPHI可以调用任何语言写的DLL文件,调用的方法例子代码:

var

  psapi: cardinal

  //下面申明DLL中子程序的原型

  EnumProcesses: function (lpidProcess, cb, cbNeeded: DWORD): Integer stdcall

  EnumProcessModules: function (hProcess: THandle lphModule: HMODULE cb, lpcbNeeded: DWORD): Integer stdcall

  GetModuleBaseNameA: function 桐御(hProcess: THandle HMODULE: HMODULE lpBaseName: PChar nSize: DWORD): Integer stdcall

  GetModuleFileNameExA: function (hProcess: THandle HMODULE: HMODULE lpFileName: PChar nSize: DWORD): Integer stdcall

begin

  //打开PSAPI.DLL文件

  psapi:=LoadLibrary('psapi')

  if psapi<>0 缺租then

  try

    //把函数原型与DLL关联

    EnumProcesses:=GetProcAddress(psapi,'EnumProcesses')  

   伏轮兆 EnumProcessModules:=GetProcAddress(psapi,'EnumProcessModules')

    GetModuleBaseNameA:=GetProcAddress(psapi,'GetModuleBaseNameA')

    GetModuleFileNameExA:=GetProcAddress(psapi,'GetModuleFileNameExA')

    //执行审核的函数

    if (@GetModuleBaseNameA<>nil) and (@GetModuleFileNameExA<>nil) and (@EnumProcessModules<>nil) and (@EnumProcesses<>nil) then


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12292083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存