zoukankan      html  css  js  c++  java
  • go语言让windows发出声音,或者播放音乐

                        go语言让windows发出声音,或者播放音乐的例子:会发出alert警告的声音

                        ( 这是我应群员的求助写的, 如果你需要了解其中的调用原理或过程 或更多go语言调用win32api的资料,加群: 218160862 , 答案我告诉你)

    点击加入 go语言深圳群 golang深圳

     

                               package main

                               import "syscall"

                                func main(){ 

                                         winSound()

                                }

     

                                // golang 让windows发出警告的声音  todo 需要完善播放mp3之类

                                func winSound(  )  {

                                         funInDllFile, err := syscall.LoadLibrary("Winmm.dll") // 调用的dll文件

                                         if err != nil {

                                                   print("cant not call : syscall.LoadLibrary , errorInfo :" + err.Error())

                                         }

                                         defer syscall.FreeLibrary(funInDllFile)

                                         // 调用的dll里面的函数是:

                                         funName := "PlaySound"

     

                                         // 注册一长串调用代码,简化为 _win32Fun 变量.

                                         win32Fun, err := syscall.GetProcAddress(syscall.Handle(funInDllFile), funName) 

     

                                         // 通过syscall.Syscall6()去调用win32的xxx函数,因为xxx函数有3个参数,故需取Syscall6才能放得下. 最后的3个参数,设置为0即可

                                         _, _, err = syscall.Syscall6(

                                                   uintptr(win32Fun),                                                                             // 调用的函数名

                                                   3,                                                                                                     // 指明该函数的参数数量

                                                  

                                                   uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("alert") ) ),                    // 该函数的参数1. 可通过msdn查找函数名 查参数含义

                                                   // SystemStart

                                                   uintptr( 0 ),                                                                                       // 该函数的参数2.                                  

                                                   uintptr( 0 ),                                                                                       // 该函数的参数3.               

                                                                                                

                                                   0,                                                   

                                                   0,                                                   

                                                   0 )             

                                }

  • 相关阅读:
    从零开始搭建EasyDarwin环境——Linux系统开发环境Golang的搭建
    TSINGSEE青犀视频直播关键帧和空白关键帧都起到什么作用?
    TSINGSEE青犀视频平台监控程序新增按时间检测的实现
    TSINGSEE青犀视频开发AI识别dlib使用GPU如何激活?
    EasyCVR/EasyGBS程序运行为什么会出现too many open files?
    一篇文章让你了解视频监控系统搭建过程中如何选择存储方式
    MS SQL Server树型结构数据显示的SQL语句(纯SQL语句,不用函数)
    oracle中解决汉字无法显示、输入问题
    福州某火锅城餐饮收费系统查询代码
    (原创)基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(tsql语言实现)
  • 原文地址:https://www.cnblogs.com/wangqishu/p/5148535.html
Copyright © 2011-2022 走看看