procedure TForm1.FormCreate(Sender: TObject);
var
  hDSound: Cardinal;
  pDirectSoundCreate: Pointer;
  hWinmm: Cardinal;
  pmidiStreamOpen: Pointer;
  pwaveOutWrite: Pointer;
  lp: Cardinal;
begin
  hDSound := LoadLibrary('DSound.dll');
  if hDSound > 0 then
    pDirectSoundCreate := GetProcAddress(hDSound, 'DirectSoundCreate');
  if pDirectSoundCreate <> nil then
  begin
    VirtualProtect(pDirectSoundCreate, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$0C#$00, pDirectSoundCreate^, 3);
  end;
 
  hWinmm := LoadLibrary('Winmm.dll');
  if hWinmm > 0 then
    pmidiStreamOpen := GetProcAddress(hWinmm, 'midiStreamOpen');
  if pmidiStreamOpen <> nil then
  begin
    VirtualProtect(pmidiStreamOpen, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$04#$00, pmidiStreamOpen^, 3);
  end;
 
  if hWinmm > 0 then
    pwaveOutWrite := GetProcAddress(hWinmm, 'waveOutWrite');
  if pwaveOutWrite <> nil then
  begin
    VirtualProtect(pwaveOutWrite, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$0C#$00, pwaveOutWrite^, 3);
  end;
end;

最新文章

  1. JavaScript中的正则表达式(终结篇)
  2. #define 小知识
  3. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
  4. Grand Theft Auto V 图形研究(2)
  5. DG - physical standby switchover切换过程
  6. SQL游标 更新
  7. iOS定位 - 普通定位(没有地图) - 反地理编码(得到具体位置)
  8. PL/SQL拼接和使用绑定变量
  9. C# 语言的多线程编程,完全是本科OS里的知识
  10. OpenCV局部变形算法探究
  11. struts的package的name与namespace
  12. node.js零基础详细教程(5):express 、 路由
  13. 用于文件系统的C库函数
  14. Spring MVC与注解相关的一些配置的方法
  15. 在Echarts 柱形图的单击事件中写入自定义的参数
  16. 【牛客OI赛制测试赛3】 毒瘤xor
  17. 接口调试工具ApiPost的发送超时时间设置方法
  18. Eclipse国内镜像源配置方法
  19. 解决 Out of range value adjusted for column &#39;ID&#39; at row 1
  20. FTP下载工具

热门文章

  1. 【BZOJ】1058: [ZJOI2007]报表统计(splay+set)
  2. 【BZOJ】1660: [Usaco2006 Nov]Bad Hair Day 乱发节(单调栈)
  3. jQuery功能函数详解
  4. Sqlite - constraint failed[0x1555]: UNIQUE constraint failed
  5. js获取表单数据
  6. Fel初认识
  7. Windows下IPython安装
  8. java框架----&gt;RxJava的使用(一)
  9. java中的最重要的 集合框架
  10. 160608、mysql距离函数st_distance