【问题标题】:JavaScript: How get an access to the system windows in OS WindowsJavaScript:如何访问 OS Windows 中的系统窗口
【发布时间】:2018-10-16 17:06:50
【问题描述】:

我如何才能访问用户现在正在使用的程序的窗口?

这不应该违反系统的安全性。 问题是我想在 NodeJS 和 Electron 上编写一个应用程序,它可以查看哪个程序正在运行并被用户使用。

我可以用哪一种方法做到这一点?我可以使用 Windows API 吗?如果答案是“是”,该怎么办?

【问题讨论】:

  • 欢迎来到 SO。请提供一个最小、完整和可验证的示例。 向我们展示您最近尝试的代码以及您遇到的问题。并解释为什么结果不是你所期望的。编辑您的问题以包含代码,请不要在评论中添加它,因为它可能不可读。 stackoverflow.com/help/mcve
  • @Dragonthoughts — 问题不是寻求帮助调试代码。它询问如何开始解决问题。要求minimal reproducible example 没有意义。
  • @Quentin 展示一些努力开始是有帮助的,而不是仅仅要求其他人编写代码以获得答案。 Stack Overflow 是一个问答论坛,而不是免费的代码编写服务。
  • @Dragonthoughts — 这不是某种算法练习。这不是一个人可以简单地“尝试”的事情。我同意应该付出一些努力,但这不太可能采取代码的形式。

标签: javascript node.js electron native


【解决方案1】:

我不太了解 electron,但是在 node.js 中,你有这些类型的选项:

  1. 您可以找到一个 NPM 模块,该模块知道如何列出当前计算机上运行的进程、安装该模块并使用其 API。例如,这里有一个叫process-list。还有一堆其他的显示here

  2. 您可以找到一个常规的 Windows 命令行程序(类似于 Unix ps),它可以在命令行提示符下列出当前的 Windows 进程,然后您可以使用 node.js 中的 child_process 模块从 node.js 运行该程序并捕获其输出。

  3. 您可以编写自己的 node.js 本机代码插件,直接访问 Windows API 以获取此进程信息,然后通过插件将其返回到您的 Javascript。这很可能是选项 #1 中的 NPM 模块所做的。

我可以使用 Windows API

是的,通过本机代码插件或通过代理您访问 Windows API 的插件。 Windows API 访问不是直接内置在 node.js 中的。


就我个人而言,我会站在那些已经完成这项工作的人的肩膀上,并从许多 NPM 模块中进行选择,这些模块似乎已经内置了这个过程列表功能。注意:在任何现代操作系统中,都有安全限制您可以在没有提升权限的情况下执行或了解另一个进程。您通常可以找出正在运行的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多