绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
1月82017

播放windows\Media文件夹下的wav波形文件

作者:haijie1223   发布:2017-1-8 10:23 Sunday   分类:源码示例   阅读:15549次   评论:0条  

问题来源:
这个标题不知道描述的清楚与否,这个是刚才群里的一位朋友问的问题。欢迎大家进群讨论问题:477266297问题如下:
SoundPlay(@WindowsDir & '\Media\Windows 注销声.wav')
用上面的代码运行后没有反应,但是下面这个可以播放:SoundPlay(@WindowsDir & '\Media\ir_begin.wav')
其实之前也遇到过类似问题,就像桌面、我的文档等文件夹,看上去是中文的,但其实真正的名字不是中文的。
那这里的Windows 注销声 其真正的名字是:Windows Logoff Sound.wav。
所以应该用SoundPlay(@WindowsDir & '\Media\Windows Logoff Sound.wav')来播放。===============================================================
分析过程:
其实windows系统的文件夹下都有个Desktop.ini配置文件,其实信息就在这里。所以打开C:\Windows\Media\Desktop.ini,可以看到如下信息(为方便看帖,只上少部分内容):

[LocalizedFileNames]
chimes.wav=@%windir%\system32\mmres.dll,-700
chord.wav=@%windir%\system32\mmres.dll,-701
ding.wav=@%windir%\system32\mmres.dll,-702
ir_begin.wav=@%windir%\system32\mmres.dll,-703```

 

前面的名字是文件的真正的名字,后面才是windows显示的名字,是所指向的文件和文件资源的字符串id,就是要显示的文件名。
但是在去查看@%windir%\system32\mmres.dll这些文件时发现里面并没有字符串信息,这个因为有多国语言的影响,所以对应的应该在各个系统语言的文件夹下。
那么应该在C:\Windows\System32\zh-CN\mmres.dll.mui文件中,打开查看,果然在此。
=============================================================== 

代码编写: Author:haijie1223 QQ29535065-http://www.jianyiit.com

```#NoTrayIcon
#RequireAdmin
;~ #PRE_UseX64=n
#include <array.au3>
#include <WinAPIRes.au3>
Global $ListName = IniReadSection(@WindowsDir & '\Media\Desktop.ini', 'LocalizedFileNames')
Global $aArray, $hInstance
For $i = 1 To $ListName[0][0]
    $ListName[$i][0] = @WindowsDir & '\Media\' & $ListName[$i][0]
    $ListName[$i][1] = StringRegExpReplace(StringReplace($ListName[$i][1], '@%windir%', @WindowsDir), '(?ims)(.*\\)(.*?\.\w{3})', '$1zh-CN\\$2.mui')
    $aArray = StringSplit($ListName[$i][1], ',-', 1)
    $ListName[$i][1] = _WinAPI_LoadStringEx($aArray[1], $aArray[2], Dec(@OSLang))
    Assign(StringToBinary($ListName[$i][1]), $ListName[$i][0], 2)
Next
_ArrayDisplay($ListName)
SoundSetWaveVolume(100)
_udf_SoundPlay(@WindowsDir & '\Media\Windows 注销声.wav')
Func _udf_SoundPlay($sFileName)
    $sFileName = StringRegExpReplace($sFileName, '.*\\(.*)', '$1')
    If StringRight($sFileName, 4) = '.wav' Or StringRight($sFileName, 4) = '.mid' Then $sFileName = StringTrimRight($sFileName, 4)
    If IsDeclared(StringToBinary($sFileName)) Then SoundPlay(Eval(StringToBinary($sFileName)), 1)
EndFunc   ;==>_udf_SoundPlay```


```

 





本文固定链接: http://www.jianyiit.com/post-251.html

blogger
该日志由 haijie1223 于2017-1-8 10:23 Sunday发表在 源码示例 分类下。
版权所有:《绿色风's Blog》 → 《播放windows\Media文件夹下的wav波形文件》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::屏蔽键盘MOUSE超级UDF
下一篇:AU3真正的 修改IE 代理 即使生效·

热门文章

相关文章

  • GDI+示例2
  • 播放windows\Media文件夹下的wav波形文件
  • Php-authcode算法之AU3版
  • Au3返回指定日期的国际标准(ISO)周数. 年度的第几周)
  • AU3源码JDK环境配置
取消回复

发表评论

亲,头像对么?

28 + 41 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7237 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap