[英]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.