打开程序用ShellExecute更好,在USES段加入SHELLAPI,使用时如:<br> 执行"c:/myapp/myapp.exe"参数为"-s"<br> ShellExecute(handle,'open','c:/myapp/myapp.exe','-s','',SW_SHOWNORMAL);<br> 第一个参数为父窗口句柄;<br> 第二个参数为打开方式(OPEN,PRINT两种);<br> 第三个参数为执行文件全路径;<br> 第四个参数为执行文件参数;<br> 第五个参数为执行文件开始运行时的初始目录;<br> 第六个参数为为执行文件运行方式(SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,<br>SW_RESTORE,SW_SHOW,SW_SHOWDEFAULT,SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED,<br>SW_SHOWMINNOACTIVE,SW_SHOWNA,SW_SHOWNOACTIVATE,SW_SHOWNORMAL);<br> 具体请看帮助。另外,如果为字符串参数,其中包含变量或运算的必需用PCHAR()函数<br>关闭程序<br>procedure TForm1.Button36Click(Sender: TObject);<br>const<br> PROCESS_TERMINATE=$0001;<br>var<br> ExeFileName: String;<br> ContinueLoop: BOOL;<br> FSnapshotHandle: THandle;<br> FProcessEntry32: TProcessEntry32;<br>begin<br> ExeFileName := 'program.exe';//你要结束的程序名称!<br> FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);<br> FProcessEntry32.dwSize := Sizeof(FProcessEntry32);<br> ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);<br> while integer(ContinueLoop) &lt;&gt; 0 do<br> begin<br> if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =<br> UpperCase(ExeFileName))<br> or (UpperCase(FProcessEntry32.szExeFile) =<br> UpperCase(ExeFileName))) then<br> TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),<br> FProcessEntry32.th32ProcessID), 0);<br> ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);<br> end;<br>end;