// 这是俺用来启动新进程的函数
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程序,执行这些就可以
大家都是出来卖的,何苦自己人为难自己人
那些活好的,或者活新的,或者花样多的,
或者老板拉皮条功夫好能拉到肯多花钱的客的,
拜托不要老是打击年老色衰的同行了
老鱼记事 老鱼侃棋 老鱼围脖