forked from TonyJiangWJ/Ant-Forest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
截图功能测试2.js
69 lines (65 loc) · 1.99 KB
/
截图功能测试2.js
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
let { config: _config } = require('../config.js')(runtime, global)
let singletonRequire = require('../lib/SingletonRequirer.js')(runtime, global)
let capturePermissionResolver = singletonRequire('CapturePermissionResolver')
console.show()
let currentEngine = engines.myEngine()
let runningEngines = engines.all()
let runningSize = runningEngines.length
let currentSource = currentEngine.getSource() + ''
if (runningSize > 1) {
runningEngines.forEach(engine => {
let compareEngine = engine
let compareSource = compareEngine.getSource() + ''
if (currentEngine.id !== compareEngine.id && compareSource === currentSource) {
// 强制关闭同名的脚本
compareEngine.forceStop()
}
})
}
let permission = requestScreenCapture()
let screen = null
let captureThread = createCaptureThread()
let failedCount = 0
threads.start(function () {
while (true) {
if (permission) {
if (screen == null) {
log('截图失败')
failedCount++
} else {
failedCount = 0
}
}
log('截图线程截图:' + (screen != null ? screen.getWidth() : false))
screen = null
if (failedCount > 3 && permission) {
permission = false
ImagesResolver.releaseImageCapture(runtime)
sleep(1000)
log('准备重新获取截图权限')
permission = capturePermissionResolver.releaseAndRequestScreenCaptureAuto()
log('重新获取截图权限:' + permission)
captureThread.interrupt()
console.verbose('准备重新创建截图线程')
captureThread = createCaptureThread()
console.verbose('重新创建截图线程')
failedCount = 0
}
sleep(2000)
}
})
function createCaptureThread () {
return threads.start(function () {
while (true && !java.lang.Thread.currentThread().isInterrupted()) {
if (!permission) {
return
}
console.verbose('准备截图')
screen = captureScreen()
if (screen) {
toastLog('截图成功')
sleep(2000)
}
}
})
}