如何调用外部程序以及判断某一应用程序是否在运行...在线等待 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Function {TCustomExecExtApp.}Execute(ComLine : String):boolean;var FAppHandle : THandle; lpAppName : pchar; lpTitle : Pchar; StartInfo : TStartupInfo; FProcessInfo : TProcessInformation;begin if (Length(ComLine)+2)>255 then begin SetError(-1,'Command Line Too Long!'); Result := false; exit; end; GetMem(lpAppName,MaxPath); GetMem(lpTitle,MaxPath); StrPCopy(lpAppName,ComLine); StrPCopy(lpTitle,ComLine); //init StartInformation StartInfo.cb:=sizeof(TStartupInfo); StartInfo.lpReserved := NIL; StartInfo.lpDesktop:=NIL; StartInfo.lpTitle := lpTitle; StartInfo.dwFillAttribute := 0; StartInfo.cbReserved2 :=0; StartInfo.lpReserved2 := NIL; //这个参数控制Create Window形态 //STARTF_USESHOWWINDOW 指定这个标志位,指示用ShowWindow的参数建立窗口 StartInfo.dwFlags := STARTF_USESHOWWINDOW; StartInfo.wShowWindow := FWinStyle; //CreateProcess 在Windows.pas中的一个原形 //function CreateProcessA(lpApplicationName: PAnsiChar; lpCommandLine: PAnsiChar; //lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; //bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; //lpCurrentDirectory: PAnsiChar; const lpStartupInfo: TStartupInfo; //var lpProcessInformation: TProcessInformation): BOOL; stdcall; //Clear ProcessInfo Structure FProcessInfo.hProcess := 0; FProcessInfo.hThread := 0; FProcessInfo.dwProcessId := 0; FProcessInfo.dwThreadId := 0; //Create process if CreateProcess(NIL, lpAppName, nil, nil, False, 0, nil, nil, StartInfo, FProcessInfo) then begin //Command Executed //为进程建立可查询的属性。 FAppHandle := OpenProcess(PROCESS_QUERY_INFORMATION,False,FProcessInfo.dwProcessId); //建立可查询的属性后可用于GetExitCodeProcess,在Delphi中查询外部程序是 //否还在运行,这个函数在W95,W98,NT40下均可用. //注意:FAppHandle要改成Form的变量,以便其它函数可以使用. // GetExitCodeProcess(FAppHandle,FAppState); // if FAppState<>STILL_ACTIVE then // 外部程序已结束 // else // 外部程序还在运行 end else //false Create Process; begin SetError(-2,'Can not create process!'); Result := false; end; FreeMem(lpAppName); FreeMem(lpTitle);end; to qiujsh(四大皆空) :出现一个问题:[Error] P_main.pas(135): Undeclared identifier: 'FWinStyle'不知道该怎么解决... FWinStyle是个参数,同ShowWindow里的参数,SW_SHOW 紧急求助 这个查询功能怎么写 求一个转换高低位的函数程序 语言与人(本人原创) 线程控制的问题,请教各们大侠 用DCOM能登陆到本机的应用服务器,但不能登陆到其他机器上,我用了LOGIN = TRUE,请指教 请教各位大哥图象字段如何在.db数据库表中添加设置。在线等,不见不散 简单的除法计算出了异常该怎么办? 请问各位,如何自己制作vsf样式文件呢? 谁有类似美萍网管大师的程序的源代码啊? 请教高手:Delphi6如何使用Ado的Shape命令? 请不要发表可能给我们带来伤害的言论,谢谢配合! 关于应用程序连接sql server2000数据库问题----在线等待
var
FAppHandle : THandle;
lpAppName : pchar;
lpTitle : Pchar;
StartInfo : TStartupInfo;
FProcessInfo : TProcessInformation;
begin
if (Length(ComLine)+2)>255 then
begin
SetError(-1,'Command Line Too Long!');
Result := false;
exit;
end; GetMem(lpAppName,MaxPath);
GetMem(lpTitle,MaxPath); StrPCopy(lpAppName,ComLine);
StrPCopy(lpTitle,ComLine);
//init StartInformation
StartInfo.cb:=sizeof(TStartupInfo);
StartInfo.lpReserved := NIL;
StartInfo.lpDesktop:=NIL;
StartInfo.lpTitle := lpTitle;
StartInfo.dwFillAttribute := 0;
StartInfo.cbReserved2 :=0;
StartInfo.lpReserved2 := NIL;
//这个参数控制Create Window形态
//STARTF_USESHOWWINDOW 指定这个标志位,指示用ShowWindow的参数建立窗口
StartInfo.dwFlags := STARTF_USESHOWWINDOW;
StartInfo.wShowWindow := FWinStyle; //CreateProcess 在Windows.pas中的一个原形
//function CreateProcessA(lpApplicationName: PAnsiChar; lpCommandLine: PAnsiChar;
//lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
//bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer;
//lpCurrentDirectory: PAnsiChar; const lpStartupInfo: TStartupInfo;
//var lpProcessInformation: TProcessInformation): BOOL; stdcall; //Clear ProcessInfo Structure
FProcessInfo.hProcess := 0;
FProcessInfo.hThread := 0;
FProcessInfo.dwProcessId := 0;
FProcessInfo.dwThreadId := 0; //Create process
if CreateProcess(NIL,
lpAppName,
nil,
nil,
False,
0,
nil,
nil,
StartInfo,
FProcessInfo) then
begin //Command Executed
//为进程建立可查询的属性。
FAppHandle := OpenProcess(PROCESS_QUERY_INFORMATION,False,FProcessInfo.dwProcessId);
//建立可查询的属性后可用于GetExitCodeProcess,在Delphi中查询外部程序是
//否还在运行,这个函数在W95,W98,NT40下均可用.
//注意:FAppHandle要改成Form的变量,以便其它函数可以使用.
// GetExitCodeProcess(FAppHandle,FAppState);
// if FAppState<>STILL_ACTIVE then
// 外部程序已结束
// else
// 外部程序还在运行
end
else //false Create Process;
begin
SetError(-2,'Can not create process!');
Result := false;
end; FreeMem(lpAppName);
FreeMem(lpTitle);
end;
[Error] P_main.pas(135): Undeclared identifier: 'FWinStyle'
不知道该怎么解决...