加载中…
个人资料
小胖和猪猪
小胖和猪猪
  • 博客等级:
  • 博客积分:0
  • 博客访问:838,171
  • 关注人气:111
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

windows的API函数Beep用法

(2011-01-12 08:30:03)
标签:

delphi

windows编程

it

分类: 计算机

Delphi下调用windows.Beep(X,Y)在XP系统下正常,主板可以发出蜂鸣,但在Win7下就不行,原因是Win7下Beep的驱动默认是将蜂鸣发送到声卡而不是主板,所以Beep必须打开扬声器才能听到!

试过用winio驱动来发声,在win7下也不行,用法:

下载winio包,解压,需要用到winio.dll; winio.vxd;winio.sys 三个文件

delphi可以直接调用dll

function   InitializeWinIo():   BOOL;     stdcall;     external   'WinIO.dll ';
procedure  ShutdownWinIo();     stdcall;     external   'WinIO.dll ';
function   GetPortVal(wPortAddr:   WORD;     var   pdwPortVal:   DWORD;     bSize:   BYTE):   BOOL;     stdcall;     external   'WinIO.dll ';
function   SetPortVal(wPortAddr:   WORD;     dwPortVal:   DWORD;     bSize:   BYTE):   BOOL;     stdcall;     external   'WinIO.dll ';

...

InitializeWinIO();

...

 If   bWinIOInitialized   then
    begin
        GetPortVal($61,   dwValue,   1);
        dwValue   :=   dwValue   and   $FC;
        SetPortVal($61,   dwValue,   1);
    end;

...

ShutDownWinIO;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有