代码之家  ›  专栏  ›  技术社区  ›  robsoft

从windows控制台启动gui程序,然后使其自身“分离”

  •  1
  • robsoft  · 技术社区  · 17 年前

    我正在尝试修改一个传统的Delphi5应用程序,以便它可以从图标/通过浏览器或控制台(命令行)启动。当它从控制台启动时,我希望程序从控制台进程中分离出来,这样控制台就可以继续执行其他指令,而无需等待我的程序终止。

    @echo off
    rem step 1 - do some stuff here
    rem
    rem step 2 - launch my app
    c:\myfolder\myapp
    rem
    rem step 3 - do some more stuff here
    

    在第2步中启动我的应用程序后,控制台进程将直接进入第3步。

    我肯定很多年前我就做过,但我不知道我到底做了什么。我不想为我的主Windows应用程序编写一个小小的控制台应用程序“launcher”——我95%确信在一个“普通”的Delphi GUI应用程序中有一种方法可以做到这一点。

    我想我可以使用vbscript或powershell或其他东西来“执行”带有某种“nowait”参数的程序,但客户机熟悉批处理文件,我并不想建议他更改脚本或安装其他东西,从而打乱applecart-我正在对可执行文件进行更改,勾选该选项将非常好这个盒子也是给他的。

    有人吗?:-)

    5 回复  |  直到 17 年前
        1
  •  14
  •   paxdiablo    17 年前

    我认为 START 你要找的就是指挥部。它单独启动一个进程到控制台,它是 cmd.exe 所以不需要额外的软件。

    但我认为GUI应用程序无论如何都能做到这一点。也许Delphi与MSVC不同。

    打开控制台并键入 "start /?" .

    itowlson 在注释中,GUI应用程序通常会自行分离。这是真实的 命令提示符 shell做了一个诡计,如果它是从cmd文件运行的,它会等待它完成。

    所以 "notepad" 从提示符将在后台启动它,但 “记事本”

    start notepad.exe
    

    或者不管你的应用程序叫什么(大概不是记事本)。

        2
  •  5
  •   Shay Erlichmen    17 年前

    尝试: (带空引号)

        3
  •  2
  •   Erfankam    13 年前

    我认为微软已经在Windows Power Shell中解决了这个问题。 在命令提示符下,即使使用“开始”,也不能从cmd中分离进程。如果你关闭cmd,你会突然死亡。但在windows Power Shell中,默认情况下,您可以从Power Shell分离程序或命令。 因此,如果您喜欢使用Windows Power Shell而不是命令提示符,请执行以下操作:

    PS: X:\> <your command>
    
        4
  •  0
  •   Justin Goldberg    10 年前

    指令 启动c:\myfolder\myapp 不起作用

    cmd /c dir && c:\myfolder\myapp
    

    要引用CMD帮助,请执行以下操作:

    /C      Carries out the command specified by string and then terminates
    
    Note that multiple commands separated by the command separator '&&'
    are accepted for string if surrounded by quotes.
    

    显然,它注意到 迪尔 命令终止并退出,即使您的应用程序是使用同一命令启动的。把它归因于一个变幻莫测的窗口。

        5
  •  -1
  •   paulisimo    8 年前

    您应该使用cd命令示例

    cd我的文件夹

    启动myapp

    出口

    推荐文章