让程序后台隐藏运行

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

时间: 2024-12-24 18:55:04

让程序后台隐藏运行的相关文章

ios程序后台继续运行

1.图标右上角显示消息个数 if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) { UIUserNotificationType myType = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; UIUserNotificationSettings *mySetting = [U

6个可以隐藏运行bat,浏览器等程序的方法

转自:http://itindex.net/detail/38012-bat-%E6%B5%8F%E8%A7%88%E5%99%A8-%E7%A8%8B%E5%BA%8F 在电脑启动时或者设置时间时运行指定的程序很容易实现.但是有时候还需要运行时不显示主界面,隐藏到后台运行.比如:开机时一段Bat批处理执行删除默认共享; 开机自动运行浏览器隐藏到后代打开指定网页等,希望所有的操作对用户都是不可见的.如果你也有这样的需求,这里我收集了几个让批处理.浏览器等程序隐藏到运行的方法或许可以帮到你. 方法

zz:控制台程序后台运行

控制台程序后台运行 2010-07-10 07:06 P.M. #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址              在控制台程序中隐藏控制台窗口! 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,

linux程序后台运行

linux命令后台运行  有两种方式: 1. command & : 后台运行,你关掉终端会停止运行   2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介     Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松

程序自启动及后台持续运行的研究(voip和GPS方式)

1,voip方式    1)首先要修改应用的plist配置,添加下面的设置:        Application does not run in background: NO        Required background modes: VOIP    注:添加这些配置之后,程序重启解锁就会自动运行application:                                  didFinishLaunchingWithOptions方法.    2)主要测试代码:- (BO

程序长时间后台保持运行

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以, 1.音乐 2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice

Linux系统下程序后台运行nohup,&,screen等

"nohup" 在用户ssh终端断开或者网络端口时,终端没有HUP信号则会关闭所有子进程. nohup则会让进程忽略HUP信号,不受终端断开限制 一般在结尾加上"&"将命令同时放到中断后台运行 nohup标准输出和标准错误输出会被重定向到nohup.out文件中 [[email protected] ~]# nohup ping www.ibm.com & [1] 3059 nohup: appending output to `nohup.out'

ios程序后台运行设置(不是太懂)

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以, 1.音乐 2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice

windows下cmd命令提示符下让程序后台运行命令

如果你的程序需要在windows后台运行,并且是在cmd下启动,那么在执行的程序前加上start /b,比如start /b [程序名]. windows下start命令的详细参数及功能介绍如下: 文章来源 www.169it.com 启动一个单独的窗口运行指定的程序或命令. START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /