go語言讓windows發出聲音,或者播放音樂的例子:會發出alert警告的聲音
( 這是我應群員的求助寫的, 如果你需要了解其中的調用原理或過程 或更多go語言調用win32api的資料,加群: 218160862 , 答案我告訴你)
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 )
}