如何调用exe |
尚未結案
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi suntao008, 用 winexec 或是 ShellExec 呼叫該執行檔 http://delphi.ktop.com.tw/topic.php?topic_id=48171 ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
suntao008你好: ShellExecute 介绍
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
说明
查找与指定文件关联在一起的程序的文件名
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
lpFile String,想用关联程序打印或打开一个程序名或文件名
lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory String,想使用的完整路径
nShowCmd Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数
使用:
uses shellapi;
procedure TForm1.Button2Click(Sender: TObject);
begin
xPath := 'f:\Setup.exe'; //EXE裆案!
ShellExecute(0, PChar('open'), PChar(xPath), nil, nil, SW_SHOW);
end;
winexec
Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
说明
运行指定的程序
返回值
Long,大于32表示成功,请参考FindExecutable函数
参数 类型及说明
lpCmdLine String,包含要执行的命令行
nCmdShow Long,定义了以怎样的形式启动程序的常数值。参考ShowWindow函数的nCmdShow参数
使用:
procedure TForm1.Button20Click(Sender: TObject);
begin
WinExec(PChar( 'f:\Setup.exe'; ),SW_Normal);
end;
还有就是:
CreateProcess
Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
说明
创建一个新进程(比如执行一个程序)
关于API函数的使用,可参照
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=50736
查找一下,会有更多的收获 ——行径窄处,留一步与人行——
=====
为什么,经过多年以后,得失的过程如此冷漠
为什么,经过多年以后,风干的伤口心痛依旧 發表人 -
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |