找回密码
 加入
搜索
查看: 2234|回复: 8

[AU3基础] 如何获取剪贴板内容,用语音包读出声音?

  [复制链接]
发表于 2011-9-10 10:35:18 | 显示全部楼层 |阅读模式
如何获取剪贴板内容,用语音包读出声音?

ClipPut  那这么吊用语音包 读出声音。
发表于 2011-9-10 16:25:27 | 显示全部楼层
$sp = ObjCreate("SAPI.SPVoice")
$sp.volume = 100
While True
        Sleep(100)
        $str = ClipGet()
        If StringLen($str) > 0 Then
                $sp.speak($str)
                ClipPut("")
        EndIf
WEnd
发表于 2011-9-10 19:46:12 | 显示全部楼层
真牛。。。。。。。。。
 楼主| 发表于 2011-9-10 20:38:04 | 显示全部楼层
就是的,真是牛。还有问题请教。如何选择语音人物? 请给个参考。
发表于 2011-9-10 21:01:43 | 显示全部楼层
回复 2# www378660084
这是太牛了,简简单单几行代码,做出这种功能,强大啊!
发表于 2011-9-10 21:10:40 | 显示全部楼层
$sp = ObjCreate("SAPI.SPVoice")
$sp.volume = 100
While True
        Sleep(100)
        $str = ClipGet()
        If S ...
www378660084 发表于 2011-9-10 16:25

好像不能说中文
发表于 2011-9-10 22:14:01 | 显示全部楼层
本帖最后由 3mile 于 2011-9-11 10:42 编辑

#include <array.au3>

$sp = ObjCreate("SAPI.SPVoice")
Global $getvoice = $sp.GetVoices()
Global $who[1]

For $VoiceNames In $getvoice        
        ReDim $who[UBound($who) + 1]
        $who[UBound($who) - 1] = $VoiceNames.getdescription()
Next
_ArrayDelete($who,0)

$sp.volume = 100
$sp.Rate = 3
While True
        Sleep(100)
        $str = ClipGet()
        If StringLen($str) > 0 Then
                For $i = 0 To UBound($who) - 1
                        MsgBox(0, $who[$i], '"NAME=' & $who[$i] & '"')
                        $sp.Voice = $sp.GetVoices().Item($i)
                        $sp.speak($str)
                Next
                ClipPut("")
        EndIf
WEnd
发表于 2011-9-12 20:03:07 | 显示全部楼层
谢谢,顶一下
发表于 2011-9-13 13:01:46 | 显示全部楼层
不错呀,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 10:18 , Processed in 0.081544 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表