码迷,mamicode.com
首页 > 其他好文 > 详细

让程序后台隐藏运行

时间:2016-11-30 04:10:36      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:err   hid   tab   lin   隐藏   put   and   dir   std   

function exec_cmd_line(const sCmd: AnsiString; var nExitCode: Cardinal; nDefWaitTime: Cardinal = 10 * 1000): string;

//const
//  aExitCode_CreateProcessError = 222;

var
  si: TStartupInfoA;
  pi: TProcessInformation;

  //aCurrDir: string;

  //aRet: Cardinal;


begin


  FillChar(si, SizeOf(si), #0);
  FillChar(pi, SizeOf(pi), #0);

//  Windows.GetStartupInfo(si);
  si.cb := SizeOf(si);
  si.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
  si.wShowWindow := SW_HIDE;


//BOOL WINAPI CreateProcess(
//  LPCTSTR lpApplicationName,
//  LPTSTR lpCommandLine,
//  LPSECURITY_ATTRIBUTES lpProcessAttributes,
//  LPSECURITY_ATTRIBUTES lpThreadAttributes,
//  BOOL bInheritHandles,
//  DWORD dwCreationFlags,
//  LPVOID lpEnvironment,
//  LPCTSTR lpCurrentDirectory,
//  LPSTARTUPINFO lpStartupInfo,
//  LPPROCESS_INFORMATION lpProcessInformation
//);

  if Windows.CreateProcessA(
    nil, // LPCTSTR lpApplicationName, // pointer to name of executable module
    PAnsiChar(sCmd), //LPTSTR lpCommandLine,  // pointer to command line string
    nil, //LPSECURITY_ATTRIBUTES lpProcessAttributes,  // pointer to process security attributes
    nil, //LPSECURITY_ATTRIBUTES lpThreadAttributes,  // pointer to thread security attributes
    True, //BOOL bInheritHandles,  // handle inheritance flag
    0, //DWORD dwCreationFlags,  // creation flags
    nil, //LPVOID lpEnvironment,  // pointer to new environment block
    nil, //LPCTSTR lpCurrentDirectory,  // pointer to current directory name
    si, //LPSTARTUPINFO lpStartupInfo,  // pointer to STARTUPINFO
    pi //LPPROCESS_INFORMATION lpProcessInformation   // pointer to PROCESS_INFORMATION
    ) then begin

    if Windows.WaitForInputIdle(pi.hProcess, INFINITE) <> 0 then begin

    end;

    if Windows.WaitForSingleObject(pi.hProcess, nDefWaitTime) = Windows.WAIT_TIMEOUT then
      Windows.TerminateProcess(pi.hProcess, Windows.WAIT_TIMEOUT);

    Windows.GetExitCodeProcess(pi.hProcess, nExitCode);

  end
  else begin
    nExitCode := GetLastError;
  end;

  //nExitCode := nExitCode mod 256;

end;

 

http://bbs.2ccc.com/topic.asp?topicid=503890

 

让程序后台隐藏运行

标签:err   hid   tab   lin   隐藏   put   and   dir   std   

原文地址:http://www.cnblogs.com/findumars/p/6116011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!