zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2746回复:18

win2000下怎么让蜂鸣器发出声音

楼主#
更多 发布于:2002-06-25 19:40
请教高手:win2000下怎么让蜂鸣器发出声音,有没有简单的方法,在98下只要写端口就可以了。

最新喜欢:

okincnokincn
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-25 21:10
请教高手:win2000下怎么让蜂鸣器发出声音,有没有简单的方法,在98下只要写端口就可以了。


简单的问题,可不一定有简单的方法。。。。。。。。。。

 :)
[color=red]大头鬼! :P[/color]
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-25 21:13
还没有解决问题呢?解决了肯定给。
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-25 21:26
难道真的没有人可以解决吗?我不信
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-25 21:43
应用?驱动?
16 bit Application or 32 bit?
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-25 21:51
应用。2000当然是32位

[编辑 -  6/25/02 by  zjmwbb]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-25 21:57
答完呀
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-25 22:01
能不能在2000下直接写端口?好象不太行,因为我在98下用这种方式写了一个dll,但在2000下不能用
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-25 22:15
NT架构屏了端口
在应用中麻烦一些,纯Ring3代码的话,你首先得取得Se_Tcb_Privilege特权,其次用NativeAPI ZwSetInformationProcess降低本进程IOPL,随后你可以像98一样处理。

Ring0下就不说了。
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-25 22:44
用什么api降低iopl(?),能不能说的更明白一点,本人将不胜感激

[编辑 -  6/25/02 by  zjmwbb]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-26 08:42
extern\"C\"{
typedef DWORD (__stdcall*ZWPROC)(
IN HANDLE ProcessHandle,
IN ULONG a,
IN PVOID ProcessInformation,
IN ULONG Length);
}
...
ZWPROC ZwSetInformationProcess;
HINSTANCE hh=LoadLibrary(\"ntdll.dll\");
ZwSetInformationProcess=(ZWPROC)GetProcAddress(hh,\"ZwSetInformationProcess\");
在你有TCB特权后调用之:
ZwSetInformationProcess(GetCurrentProcess(),16,0,0);
麻烦的是获取特权。
zhangqijie
驱动牛犊
驱动牛犊
  • 注册日期2002-06-19
  • 最后登录2008-01-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-26 08:45
???
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
12楼#
发布于:2002-06-26 11:22
应用程序可以调用Win32 API
Beep(Freq, Dur)
详细情况请查阅MSDN
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
guard2002
驱动中牛
驱动中牛
  • 注册日期2002-05-21
  • 最后登录2017-03-07
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望65点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2002-06-26 12:03
beep 和sleep配合使用,挺好
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-26 12:15
问题是别人专门编个DLL来发声,或许是想简单奏乐,hehe
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-06-26 12:25
开始主观臆想用Beep会使声音有小间断(转音时),所以认为应该直接控制端口。试了一下,二者效果差不多。faint
guard2002
驱动中牛
驱动中牛
  • 注册日期2002-05-21
  • 最后登录2017-03-07
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望65点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2002-06-26 14:02
解决问题能简单就简单些吧
biqi
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2005-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-07-01 20:16
最简单的办法是下一个WINIO,它提供了用户模式下访问端口的函数,读写端口就象dos下访问端口一样,而且有跨平台特性,编译后的程序可在98,NT,2000下运行。这可是象我这样不会写驱动的懒人的福音,呵呵
aiherong
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-07-02 17:44
如果你用VC,那么最简单的办法是:
MessageBeep(0xFFFFFFFF);
函数
BOOL MessageBeep(UINT uType);
中的参数uType为以下之一时,将通过声卡发出系统设定的声音:
MB_ICONASTERISK、MB_ICONEXCLAMATION、MB_ICONHAND
MB_ICONQUESTION、MB_OK(缺省)
但如果是0x7FFFFFFF-0xFFFFFFFF范围内某个HEX数值时则由
嗡鸣器发出相应频率的BEEP声。
游客

返回顶部