服务或后台 Windows 应用程序
Services or background Windows application
我想创建一个应用程序来监视笔记本电脑上的应用程序活动并将信息发送到我的手机 phone。
我的手机 phone 会解释消息,然后为我显示选项,然后我会 select 选项并向笔记本电脑发送回复。目前我正在考虑通过 WiFi、蓝牙或 TCP 发送此消息。
我的问题是创建服务还是后台 windows 应用程序。我希望它轻便,这样就不会消耗太多 CPU 或电池。
我之前开发过后台应用,但没有开发过Service。该应用程序将一直运行。我查看了服务,但不确定它是否可以与当前活动的 window.
交互
答案取决于您的应用程序 "monitor application activities on your laptop"。
以下是一些与您的情况相关的重要事实:
您计算机上的每个应用程序 运行ning 在 session 中运行 — 代表用户持有进程和其他系统对象的实体已登录系统。当您登录到您的 PC 时,会为您创建一个新会话。您最终会进入 第 1 节或第 2 节等。 (通过在 "Details" 选项卡上添加 "Session ID" 列,您可以在任务管理器中查看每个应用程序的会话)。
当您的 PC 启动时,Windows 会自动创建 Session 0 来保存系统进程和对象。会话 0 中的所有 Windows 服务 运行。
Windows 应用程序(包括服务)无法轻松地与不同会话中的另一个应用程序 运行 交互。基本 API 函数(如 EnumWindows 或 GetWindowText)根本无法跨会话工作。您必须跳过几个环节(涉及 CreateProcessAsUser 函数)才能跨会话操作。
因此,如果您编写 Windows 服务,它将无法轻松访问交互式桌面上 "regular" 应用程序 运行 的 UI 元素。如果这是一个问题,您应该编写一个常规应用程序,它将 运行 与您希望监视的应用程序在同一会话中。
我想创建一个应用程序来监视笔记本电脑上的应用程序活动并将信息发送到我的手机 phone。
我的手机 phone 会解释消息,然后为我显示选项,然后我会 select 选项并向笔记本电脑发送回复。目前我正在考虑通过 WiFi、蓝牙或 TCP 发送此消息。
我的问题是创建服务还是后台 windows 应用程序。我希望它轻便,这样就不会消耗太多 CPU 或电池。
我之前开发过后台应用,但没有开发过Service。该应用程序将一直运行。我查看了服务,但不确定它是否可以与当前活动的 window.
交互答案取决于您的应用程序 "monitor application activities on your laptop"。
以下是一些与您的情况相关的重要事实:
您计算机上的每个应用程序 运行ning 在 session 中运行 — 代表用户持有进程和其他系统对象的实体已登录系统。当您登录到您的 PC 时,会为您创建一个新会话。您最终会进入 第 1 节或第 2 节等。 (通过在 "Details" 选项卡上添加 "Session ID" 列,您可以在任务管理器中查看每个应用程序的会话)。
当您的 PC 启动时,Windows 会自动创建 Session 0 来保存系统进程和对象。会话 0 中的所有 Windows 服务 运行。
Windows 应用程序(包括服务)无法轻松地与不同会话中的另一个应用程序 运行 交互。基本 API 函数(如 EnumWindows 或 GetWindowText)根本无法跨会话工作。您必须跳过几个环节(涉及 CreateProcessAsUser 函数)才能跨会话操作。
因此,如果您编写 Windows 服务,它将无法轻松访问交互式桌面上 "regular" 应用程序 运行 的 UI 元素。如果这是一个问题,您应该编写一个常规应用程序,它将 运行 与您希望监视的应用程序在同一会话中。