VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

win7主板蜂鸣器发声

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
港湾



註冊時間: 2016-04-08
文章: 8


第 1 樓

發表發表於: 星期一 一月 22, 2018 4:08 pm    文章主題: win7主板蜂鸣器发声 引言回覆

由于客观原因,电脑不允许使用音箱,需要使用主板自带的蜂鸣器发出声音(winxp可正常使用),据说winio可以调用这个蜂鸣器,请各位朋友韘ㄐA如何调用?或采用其他什么办法可以?
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2046


第 2 樓

發表發表於: 星期一 一月 22, 2018 9:37 pm    文章主題: 引言回覆

參考這兩篇不知能不能在沒音箱的狀態下使用
https://msdn.microsoft.com/zh-tw/library/windows/desktop/ms680356%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

https://jeffpar.github.io/kbarchive/kb/193/Q193223/

還是要用beep

代碼:

*vfp 簡易蜂鳴器音樂發聲, garfield
DECLARE Sleep IN kernel32 INTEGER dwMilliseconds
DECLARE INTEGER Beep IN kernel32 INTEGER dwFreq, INTEGER dwDur

*!*   //         Octave0   Octave1   Octave2   Octave3   Octave4   Octave5
*!*   // A       55.000    110.000   220.000   440.000   880.000   1760.000
*!*   // A#/Bb   58.270    116.541   233.082   466.164   932.328   1864.655
*!*   // B       61.735    123.471   246.942   493.883   987.767   1975.533
*!*   // C       65.406    130.813   261.626   523.251   1046.502  2093.005
*!*   // C#/Db   69.296    138.591   277.183   554.365   1108.731  2217.461
*!*   // D       73.416    146.832   293.665   587.330   1174.659  2349.318
*!*   // D#/Eb   77.782    155.563   311.127   622.254   1244.508  2489.016
*!*   // E       82.407    164.814   329.628   659.255   1318.510  2637.020
*!*   // F       87.307    174.614   349.228   698.456   1396.913  2793.826
*!*   // F#/Gb   92.499    184.997   369.994   739.989   1479.978  2959.955
*!*   // G       97.999    195.998   391.995   783.991   1567.982  3135.963
*!*   // G#/Ab   103.826   207.652   415.305   830.609   1661.219  3322.438
LOCAL mstr, mfreq[12*6], mpos
mstr ='55,110,220,440,880,1760'
mstr=mstr+',58,117,233,466,932,1865'
mstr=mstr+',62,123,247,494,988,1976'
mstr=mstr+',65,131,262,523,1047,2093'
mstr=mstr+',69,139,277,554,1109,2217'
mstr=mstr+',73,147,294,587,1175,2349'
mstr=mstr+',78,156,311,622,1245,2489'
mstr=mstr+',82,165,330,659,1319,2637'
mstr=mstr+',87,1745,349,698,1397,2794'
mstr=mstr+',92,185,370,740,1480,2960'
mstr=mstr+',98,196,392,784,1568,3136'
mstr=mstr+',104,208,415,831,1661,3322'

ALINES(mfreq,mstr,',')
FOR mpos = 1 TO ALEN(mfreq,1)
   mfreq[mpos]=VAL(mfreq[mpos])
NEXT
DIMENSION mfreq[12,6]

LOCAL music , am[1]
music='5,3,3,0,4,2,2,0,1,2,3,4,5,5,5'
ALINES( am , music,',')
FOR mpos = 1 TO ALEN(am,1)
   am[mpos]=VAL(am[mpos])
NEXT

private moctave , mlen , mskip
moctave = 3
mlen=160
mskip = 20
FOR mpos = 1 TO ALEN(am,1)
   DO case
   CASE am[mpos]=0
      sleep( mlen*3 + mskip )
   CASE am[mpos]=1
      BeepFreq( mfreq[ 4, moctave ] , mlen )
   CASE am[mpos]=2
      BeepFreq( mfreq[ 6, moctave ] , mlen )
   CASE am[mpos]=3
      BeepFreq( mfreq[ 8, moctave ] , mlen )
   CASE am[mpos]=4
      BeepFreq( mfreq[ 9, moctave ] , mlen )
   CASE am[mpos]=5
      BeepFreq( mfreq[11, moctave ] , mlen )
   CASE am[mpos]=6
      BeepFreq( mfreq[ 1, moctave+1 ] , mlen )
   other      &&--CASE am[mpos]=7
      BeepFreq( mfreq[ 3, moctave+1 ] , mlen )
   endcase
next


PROCEDURE BeepFreq (lnFreq , mlen)
= Beep(lnFreq, mlen)
= Sleep (mskip)

RETURN

_________________
利用>>搜尋<<的功能會比問的還要快得到答案..網路購物當然要比較那個最划算
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
港湾



註冊時間: 2016-04-08
文章: 8


第 3 樓

發表發表於: 星期二 一月 23, 2018 7:39 am    文章主題: 引言回覆

谢谢garfield朋友,win7以上版本的beep不好用了。
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作