在 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文件,调用的方法例子代码:
varpsapi: 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)