簡體   English   中英

角,電子,打字稿和機器人

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

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