![](/img/trans.png)
[英]Node.js module lookup in Electron+Angular 2 & TypeScript application
[英]Angular, electron, typescript and robotjs
我正在嘗試將Typescript與Electron和RobotJS一起使用。 我是所有這些技術的初學者,所以我對幕后發生的事情缺乏深刻的了解,因此我無法真正解決這個問題。 Electron和我的應用程序運行正常,所有內容均可編譯,但是RobotJS無法正常工作。 我得到的錯誤如下:
ERROR in ./node_modules/robotjs/build/Release/robotjs.node 1:0
Module parse failed: Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)
我嘗試為Robotn重建RobotJS,但仍然無法正常工作。 這是本機節點模塊嗎? 我不確定,必須先閱讀一下,弄清楚如果確實要怎么做。
這甚至可以實現嗎? 謝謝,祝你有美好的一天!
LE:看來我試圖使用依賴於angular(渲染過程)的node(主過程)的robotjs。 當我將對robotsjs的嘗試從角度組件移動到由電子運行的main.ts時,它起作用了。 我會嘗試找到一種從角度上使用它的方法,我猜是進程間通信之類的東西,因為我現在找不到任何其他方法。 由於我現在還處於黑暗之中,因此仍在等待想法。 謝謝!
好,知道了。 基本上,您不能直接從Angular訪問Electron的Node.js API。 為此,您需要一個很棒的工具ngx-electron
。 在這里閱讀或在Google上閱讀。 安裝此工具后,您可以按照大多數指南的指示去做它的服務,然后使用Electron remote
來訪問robotjs
。 基本上是這樣的:
const robot = this._electronService.remote.require('robotjs');
// The example supplied by robotjs
robot.setMouseDelay(2);
const twoPI = Math.PI * 2.0;
const screenSize = robot.getScreenSize();
const height = (screenSize.height / 2) - 10;
const width = screenSize.width;
for (let x = 0; x < width; x++) {
const y = height * Math.sin((twoPI * x) / width) + height;
robot.moveMouse(x, y);
}
可能不是最好的解決方案,但由於我目前對這些技術的了解有限,因此必須這樣做。 我願意征求您的意見。
謝謝您的寶貴時間,祝您愉快!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.