【问题标题】:Application started by user or another application?由用户或其他应用程序启动的应用程序?
【发布时间】:2009-08-26 11:36:56
【问题描述】:

这是一个非常笼统的问题: 我想知道是否有可能找出一个应用程序(任何类型的应用程序,无论是 delphi 应用程序还是 java 或其他)是由用户还是由另一个应用程序启动的?如果有可能并且我看到另一个应用程序调用了一个应用程序,我能否找出调用新程序的“父”应用程序是什么?

提前谢谢!

编辑:也许它太笼统了 - 我如何查看 Delphi 应用程序是否有一个带有 Delphi 本身的父应用程序,例如一个应用程序是由一项服务启动的,我需要找到该服务吗?

【问题讨论】:

    标签: windows delphi


    【解决方案1】:

    每个正在运行的应用程序都有一个父应用程序,它启动它(根系统进程除外)。

    不知道是不是用户直接点击应用启动。

    示例:使用 Explorer shell(不是 Internet Explorer)。

    1. 您可以双击任何应用程序来启动它。父进程将是 explorer.exe。

    2. 您可以右键单击任何文件,然后会加载一堆上下文菜单扩展程序。他们中的一些人可能会启动外部应用程序来创建视频文件的预览(我看到了,发誓!)。父进程将是 explorer.exe,但用户并没有打算启动任何应用程序。他只想查看文件的属性。他甚至都不知道,应用程序被启动了!

    示例:以 Total Commander 或任何其他支持存档插件的两面板文件管理器为例。

    1. 您可以双击任何 应用程序来启动它。父母 进程将是 totalcmd.exe。
    2. 您可以输入存档文件并复制 (提取)几个文件到你的 文档文件夹。相应的 插件可以处理提取 本身或运行不可见的进程 处理所有工作。你看到的只是 Total Commander 中的进度条。但 有一个新进程及其父进程 又是totalcmd.exe。

    在两个例子中,案例 1 和案例 2 没有区别。

    顺便说一句,“由用户启动”的定义不清楚。你甚至可以说没有用户的命令什么都不会发生。案例 #2 中的所有这些后台进程都是因为用户要求而启动的。好吧,用户并没有明确要求 lauch,而是他要求操作本身。

    【讨论】:

    • thnx 的回复......很有意义:) 但是如果你有一个名为“child”(一些 delphi 应用程序)的正在运行的应用程序是由另一个名为“parent”的应用程序启动的,并且如果“child”正在关闭“parent”在“child”关闭后5秒再次启动“child”,有没有办法找出是否有这样的“parent”?我真的不知道如何解释这一点。
    【解决方案2】:

    您没有提及是否要以编程方式执行此操作,或者您是否正在寻找仅显示信息的工具。

    如果你只是想查看信息,可以使用 SysInternals 中的 Process Monitor:

    http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

    在“工具”菜单中,有一个“进程树”视图,它向您显示了具有父/子进程关系以及每个进程的所有者的树。

    如果您想了解有关流程的更多详细信息,请查看 Process Explorer:

    http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

    【讨论】:

    • 您应该提及您使用的语言
    • 他为什么要提到他使用的是哪种语言?
    • SHE 应该提到它,b/c 你不能仅仅给出一个一般性的解释如何编程它......我很抱歉......见上文,也许是 Delphi,因为它主要用于Delphi 程序...
    • @Rick。有人如何在不知道他们使用哪种语言的情况下解释如何以编程方式确定父进程?解决方案会因实现语言而异。
    【解决方案3】:

    如果它是由用户从 Windows 启动的,那么父级将是 explorer.exe,否则父级将是运行该进程的应用程序。 使用工具检查 Ander Miller 回复来检查进程的父进程。

    【讨论】:

      【解决方案4】:

      你看到this question了吗? 我不确定我现在是否看到问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-15
        相关资源
        最近更新 更多