Electron でアンドロイドのスクリーンショット

Uncategorized
240 words

Node.js を使ってアンドロイドのスクリーンショットを取得する方法です。

Electronアプリ作成

今回も Electronアプリを作成します。

index.html

見た目をよくするために、Materialize CSSフレームワークを使用しています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
</head>
<body>
<div class="container">
<div class="section">
<div class="row">
<div class="col">
<button type="button" class="waves-effect waves-light btn" onclick="run()">スクリーンショット取得</a>
</div>
</div>
<div class="row">
<div class="col">
<img id="img" class="materialboxed" width="650">
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script src="./index.js"></script>
</body>
</html>

index.js

adb.exe のパスは書き換えて下さい。

1
2
3
4
5
6
7
8
const childProcess = require('child_process');
function run() {
let binaryData = childProcess.execSync('"D:/Program Files/Nox/bin/adb" exec-out screencap -p');
let blob = new Blob([binaryData], { type: "image/jpeg" });
let url = URL.createObjectURL(blob);
let img = document.getElementById("img");
img.src = url;
}

実行

Electronアプリを実行して スクリーンショット取得ボタンを押すと、アンドロイドのスクリーンショットが画面に表示されます。