簡體   English   中英

在 NodeJS 環境中使用 JavaScript,你能找到正在運行的應用程序的 window 句柄值嗎?

[英]Using JavaScript in a NodeJS environment, can you find a window handle value of a running application?

我正在 NodeJS 環境中為我的 React-Native 應用程序(使用 JS)編寫一些測試。 在一種情況下,我需要附加到已經運行的 Windows 應用程序。 為了附加到這個應用程序,我需要知道NativeWindowHandle 值

例如,如果您在 window 上打開 Inspect.exe,您將找到“NativeWindowHandle”十六進制值。

無論如何我可以通過編程找到這個值嗎?

我嘗試過的:我可以使用以下方法找到應用程序的 PID:

const exec = require('child_process').exec;
exec('tasklist', function (err, stdout) {
....
}}

但是,我無法將其轉換為 window 句柄。 有人在這里有什么想法嗎? 這可能嗎?

這可以通過編寫本機 (C++) 節點插件來可靠地完成,該插件調用適當的 Windows API 函數並將結果傳遞回 JS 領域。

例如,您可能想調用FindWindowEx和 Windows 將找到並返回匹配打開 window 的HWND (本機 window 句柄)。 或者,如果您需要自己進行搜索,請使用枚舉函數之一。

我對 npm 進行了快速搜索,看起來可能有一些軟件包已經完成了這項工作,但您需要評估它們。

如果 npm 包都不起作用,則需要自己編寫。 如果您有一點 C++ 知識,這並不太難,但或者您也可以使用node-ffi ,它可以讓您在 JS 中編寫所有內容並為您編組本機調用。

(使用 ffi 會比自己編寫本機模塊慢一點,但對於您的目的而言,這並不重要。本機或 ffi 將比生成子進程快得多。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM