我使的电视卡软件每次启动时都会更改屏幕刷新率,使用手动方法调整很是麻烦,希望哪位知道DELPHI中修改刷新率的方法能告诉我。

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3137/3137521.xml?temp=.7411157
      

  2.   

    var   dmScreenSettings: DEVMODE; // 设备模式
    begin
    with dmScreenSettings do
        begin // 设置屏幕设置的参数
          dmSize := SizeOf(dmScreenSettings); // Devmode 结构的大小
          dmPelsWidth:=1024; 
          dmPelsHeight:=768;        //改变分辨率
          dmBitsPerPel:=32;           //改变色深  256色是8  16是真彩色16 32是真彩色32
          dmDisplayFrequency:=85;   //刷新频率
          dmFields:=DM_BITSPERPEL                     //修改色深
          Or DM_PELSWIDTH  Or DM_PELSHEIGHT         //修改分辨率
          Or DM_DISPLAYFREQUENCY                    //修改刷新频率
         ;  
        end;
       ChangeDisplaySettings(dmScreenSettings,0);
    end;具体的可以看DEVMODE帮助
      

  3.   

    Procedure ChangeDisplay(width,height,Frequency:integer);
    var devmode:tDevicemode;
    begin
     if  EnumDisplaySettings(nil,0,devmode)  then
      begin
        devmode.dmfields:=dm_pelswidth  OR  dm_pelsheight OR dm_DisplayFrequency;
        if (devmode.dmDisplayFrequency<>frequency) or (screen.Width<>devmode.dmPelsWidth) then
        begin
        devmode.dmpelswidth:=width; {宽度}
        devmode.dmpelsheight:=height;{高度}
        devmode.dmDisplayFrequency:=frequency;{刷新率}
        ChangeDisplaySettings(devmode,0); {更改设置}
        end;
      end;
    end;
      

  4.   

    呵呵,看到你的另一贴了dmFields没有正确的赋值
    详细的在你的那篇贴子里