一段朗读聊天室个人包厢的au3代码

闲来无事,突发奇想,写了下面一段脚本,功能是自动朗读碧聊聊天室个人包厢的信息。

函数过滤掉了消息时间。

调用了sapi5的com接口,您需要首先在控制面板的“语音”中设置好默认的中文语音。有兴趣的朋友可以尝试写出gui便可以加上选择语音功能。

另在某些情况下突然关闭浏览器窗口会导致脚本出错,可能是ieudf函数的问题。

 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
#include <IE.au3>

opt("WinTitleMatchMode",2)

$objvoice = objcreate("sapi.spvoice")

$objvoice.volume =50

;$objvoice.rate = 9

$ocon =""

$objvoice.speak("晴天聊天小助手",1)

while 1

if WinExists(".bliao.com") =1 then

bliao()

endif

sleep(500)

wend



func bliao()

$oie = _IEAttach(".bliao.com")

$oid = _IEFrameGetObjByName($oie,"u1")

$ostr = _IEBodyReadText($oid)

if StringLen($ostr)> $ocon then 

$astr = StringTrimLeft($ostr,$ocon)

$str = StringRegExpReplace($astr,"&#92;(&#92;d{2}:&#92;d{2}:&#92;d{2}&#92;)","")

$objvoice.speak($str)

$ocon = StringLen($ostr)

$oie ="null"

endif

if StringLen($ostr)< $ocon AND $ostr<>"" then 

$str = StringRegExpReplace($ostr,"&#92;(&#92;d{2}:&#92;d{2}:&#92;d{2}&#92;)","")

;if NOT $str = $oldstr then 

$objvoice.speak($str,1)

$ocon = StringLen($ostr)

;$oldstr = $str

$oie ="null"

endif

endfunc
updatedupdated2024-06-102024-06-10