找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人尊貴會員無限使用任何功能尊貴會員無限看帖不用回覆
ge催眠人妖柯南名偵探柯按摩無碼 ge
無碼ni001focs 159milf's p主播(國語ktvwitch tr

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

桃園觀音文林路 女子

[繁]迷宮飯16-

[繁]無職轉生 第二季1

[繁]轉生貴族憑鑑定技

[繁]關於我轉生變成史

[繁]關於我轉生變成史
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 6890|回復: 7
打印上一主題下一主題

[求助]在windows7 64bit可以控制beep(蜂鳴器)嗎[複製鏈接]

Rank: 2Rank: 2

帖子
518
積分
363 點
潛水值
27105 米
跳轉到指定樓層
樓主
發表於 2013-6-6 11:48 AM|只看該作者|倒序瀏覽
本帖最後由 asdffdsa01 於 2013-6-20 10:29 AM 編輯

我有去官網看Beep的使用說明,
上面有說無法在64bit的系統上運作,
請問各位大大有成功的方法嗎?
  1. [DllImport("kernel32.dll")]
  2. public static extern bool Beep(int frequency, int duration);
複製代碼

我有整理一下,有需要的自己帶走摟

...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0

使用道具檢舉

Rank: 1

帖子
252
積分
187 點
潛水值
24460 米
頭香
發表於 2013-6-10 01:17 AM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 2Rank: 2

帖子
518
積分
363 點
潛水值
27105 米
3
發表於 2013-6-10 10:24 AM|只看該作者
checkbox4 發表於 2013-6-10 01:17 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

試看看SystemSounds.Beep
如:SystemSounds.Beep.Play();

這個好像是控制音效卡輸出聲音的,
不是在控制蜂鳴器的,
Win7以後好像把蜂鳴器的功能移植到音效輸出,
...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 1

帖子
69
積分
177 點
潛水值
9308 米
4
發表於 2013-6-12 01:43 AM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
In Windows 7, Beep was rewritten to pass the beep to the default sound device for the session. This is normally the sound card, except when run under Terminal Services, in which case the beep is rendered on the client.

微軟的網站這樣寫道
在WIN7Beep函式會改由預設的音效裝置發聲
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

Rank: 1

帖子
69
積分
177 點
潛水值
9308 米
5
發表於 2013-6-12 01:58 AM|只看該作者
網路上提到Win7從根本的beep.sys就已經是使用音效設備了
我原本還想說能不能透過更底層的API的
沒有想到原來在最底層都已經被修改了

有查到方法...
似乎只能透過自己寫驅動來控制了
如果太麻煩的話
可以直接使用WinIO
一個開源的dll




分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 2Rank: 2

帖子
518
積分
363 點
潛水值
27105 米
6
發表於 2013-6-18 05:43 PM|只看該作者
asdfrosy 發表於 2013-6-12 01:58 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

網路上提到Win7從根本的beep.sys就已經是使用音效設備了
我原本還想說能不能透過更底層的API的
沒有想到原 ...

不知道大大對Winio熟不熟,
...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 1

帖子
69
積分
177 點
潛水值
9308 米
7
發表於 2013-6-19 12:09 AM|只看該作者
本帖最後由 asdfrosy 於 2013-6-19 12:23 AM 編輯
  1.             SetPortValType SetPortVal = (SetPortValType)Marshal.GetDelegateForFunctionPointer
  2.                 (GetProcAddress(hMod, "SetPortVal"), typeof(SetPortValType));
  3.             GetPortValType GetPortVal = (GetPortValType)Marshal.GetDelegateForFunctionPointer
  4.                 (GetProcAddress(hMod, "GetPortVal"), typeof(GetPortValType));
  5.             // 頻率
  6.             UInt32 freq = 1193180 / 1000;
  7.             UInt32 data = 0;
  8.             GetPortVal(0x61, &data, 1);
  9.             SetPortVal(0x61, data | 3, 1);
  10.             SetPortVal(0x43, 0xb6, 1);
  11.             SetPortVal(0x42, freq & 0xff, 1);
  12.             SetPortVal(0x42, (freq >> 8) & 0xff, 1);
  13.             // 持續時間
  14.             System.Threading.Thread.Sleep(1000);
  15.             data = 0;
  16.             GetPortVal(0x61, &data, 1);
  17.             SetPortVal(0x61, data & 0xfc, 1);
複製代碼
WinIO的初始化請參考WinIO網站提供的範例
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

範例是使用C#寫的
範例有兩個可以選擇DumpPort這個範例為基礎來修改

程式碼我僅僅是根據以下網站提供的資料轉換成C#而已
我也不清楚詳細的過程
不過我已經測試過確實可以讓主機板揚聲器發出聲音了

話說...我其實一開始沒有預期到真的能成功

註1:
專案的目標平台請一定要使用Any
範例的程式碼使用IntPtr的大小來判斷平台
因為WinIO會使用到驅動程式
必須選擇正確的檔案來載入

註2:
64位元的驅動程式檔案有附上數位簽章了
不過不知道是有什麼問題
我即使安裝了那個簽章也無法順利載入驅動程式
如果你也是這樣的話
可能必須使用Test Mode開機

參考
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

下載: 訪客無法瀏覽下載點,請先 註冊登入會員

下載: 訪客無法瀏覽下載點,請先 註冊登入會員

下載: 訪客無法瀏覽下載點,請先 註冊登入會員

下載: 訪客無法瀏覽下載點,請先 註冊登入會員




...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 2Rank: 2

帖子
518
積分
363 點
潛水值
27105 米
8
發表於 2013-6-20 09:01 AM|只看該作者
asdfrosy 發表於 2013-6-19 12:09 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

WinIO的初始化請參考WinIO網站提供的範例http://www.internals.com/
範例是使用C#寫的
範例有兩個可以選擇D ...

感謝大大,
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部