そもそも、これの実現は可能でしょうか?
質問文で挙げた技術だけで実現することは不可能です。
Windowsを遠隔操作する為には下記の条件が必要です。
- 今表示している画面を画像データにする
- インターネット回線越しにクライアントへ画面の画像データを送信
- クライアントで特定箇所をクリック
- クリックした情報をインターネット回線越しに受け取る
- マウスの情報をハックして擬似的にそこがクリックした事を再現する
Node.jsで出来るのは2と4だけ、
ElectronやWebブラウザ越しにクリックしたという情報は作り出せるので3も可能
残ったWindowsの表示されている画面を画像データに変換したり、
マウスやキーボードを乗っ取ってタイピングやクリックを再現はどうやるんでしょうか?
これはマイクロソフト社がサポートしているCやC++、C#の言語ならば、
Windowsを操作するためのAPIがいくつも用意されています。
Node.jsには裏でプロセス作ってコマンド実行出来るので、
裏でPowerShellと同レベルの事は可能だったりします。
さらなる調査は必要そうですが何とかはなるかもしれません。(おまけ参照)
しかし、そもそもそういう需要はあります
VNCというソフトが登場し、
それのクローン的な存在が多数作られています。
Windows純正でもリモートデスクトップという機能がサポートされています。
参考記事: 外出先からPC操作!Windows 10 のリモートデスクトップ設定方法
インターネット越しの通信による遠隔操作は、
悪意の第三者に乗っ取られやすいです。
しっかり設計して何ヶ月か頑張ればそれらしい動作をするアプリは出来ると思いますが、
一生賭ける意気込みでなければ「セキュリティ面」や「互換性」の都合で他人に公開出来るような代物にはならないでしょう。
既に高品質な既製品が腐るほどあるから興味ある人は少ないでしょうね。
私もVNCやそのクローンソフトの使い方レベルでしか理解出来ていませんから。
勉強がてらやってみたいというなら、素晴らしい趣味になると思います。
でも、ほとんどの現役エンジニアでもアドバイスすらも出来ないでしょう。
そこだけは覚悟してから始めたほうが良いかもしれませんね。
【おまけ】追加で調査しました
他の回答でRDPの存在を知りました。
規格化されてAPIも用意されてるんですねぇ……
試しにnpmで探したらやっぱりありました。
GitHubに上がっているソースコードの実装を見る限り
裏でchild_process走らせて普通にコマンド打ち込んでいるようです。
WindowsのAPIがあるならコマンドラインからお願いすりゃ済む話か。
権限さえ適切に与えてやればリモートデスクトップは実現出来るのかな?
Windows10のRDP禁止がちょっと気がかりで動作するのかはさておき、
調査がてら導入してみるのも面白いかもしれませんね。
うまく動いたらElectronとかでサクッと実装出来るかもしれませんし。
参考記事
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 22:21