中国开发网: 论坛: 程序员情感CBD: 贴子 350748
Fish
介个不是普通程序当service。不过守护服务的事情么,俺原来尝试这么做
// 这是俺用来启动新进程的函数
function ExecuteExeFile( const FileName, Params, DefaultDir : string; ShowCmd : Integer ) : Boolean;
var
zFileName, zParams, zDir : array[ 0..200 ] of Char;
lpStartupInfo : TStartupInfo;
lpProcessInformation : TProcessInformation;
begin
FillChar(lpStartupInfo, Sizeof(TStartupInfo), #0);
lpStartupInfo.cb := Sizeof(TStartupInfo);
lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow := ShowCmd;

Result := CreateProcess( StrPCopy( zFilename, Filename ), StrPCopy( zParams, Params ),
nil, nil, False, 0, nil, StrPCopy( zDir, DefaultDir ), lpStartupInfo, lpProcessInformation );
end;

// 这是俺的 onServiceStart 里面的部分代码
// 之前,从 ini 里面读取了若干个程序的路径,放在 Apps[] 数组里
// AppCount 是数量

for i := 0 to AppCount - 1 do
begin
LogMsg( sLogFilename, 'Starting application of : ' + Apps[ i ] );
// h := ExecuteFile( Apps[ i ], '', ExtractFilePath( Apps[ i ] ), SW_MINIMIZE );
if ExecuteExeFile( Apps[ i ], '', ExtractFilePath( Apps[ i ] ), SW_MINIMIZE ) then
LogMsg( sLogFilename, 'Starting Result : Successed' )
else
LogMsg( sLogFilename, 'Starting Result : Not successed' );
end;


以上代码很奇怪,在俺测试的时候不行,写个GUI程序,执行这些就可以

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录