none
DeviceIoControl 参数怎么写出? RRS feed

  • 问题

  •  

    请问各位老师:


     背光驱动已经OK了,WINCE 已加载了它? 如何控制背光?

     DeviceIoControl(
                    hLCD, DPMS_DRIVER_IOCTL_BACKLIGHT,
                    &cb, sizeof(cb),
                    NULL, 0,
                    NULL, NULL);
     
     DeviceIoControl 参数怎么写出?

    2008年3月27日 5:41

答案

  • 不知道你们背光驱动是谁开发的,可以和开发驱动的人员直接沟通,主要是设备名称和一个普通的参数的确定,不需要参数含义统一,仅需要和驱动程序接口一致即可。以下代码是我们公司的触摸屏控制背光的程序,仅供参考。

    Code Snippet

     //LCD控制
            public const int IOCTL_LCD_ON = 0x6;
            public const int IOCTL_LCD_OFF = 0x7;

            public static int HMIIOControl(string strName, int Flag)
            {
                //不是WinCE系统则退出
                if (Environment.OSVersion.Platform != PlatformID.WinCE) return -1;

                int hIO = CreateFile(strName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
                if (hIO == INVALID_HANDLE_VALUE)
                {
                    hIO = NULL;
                    return -1;
                }
                if (hIO != NULL)
                {
                    int lpInBuffer = 0;
                    int lpOutBuffer = 0;
                    int lpBytesReturned = 0;
                    DeviceIoControl(hIO, Flag, ref lpInBuffer, NULL, ref  lpOutBuffer, NULL, ref  lpBytesReturned, NULL);
                    CloseHandle(hIO);
                    return 0;
                }
                return -2;
            }
           

    //LCD控制
            public static bool IsLCDOpen = true;
            public static int LCD(ControlMode Mode)
            {
                int Flag = IOCTL_LCD_OFF;
                switch (Mode)
                {
                    case ControlMode.ON:
                        Flag = IOCTL_LCD_ON;
                        IsLCDOpen = true;
                        break;
                    case ControlMode.OFF:
                        IsLCDOpen = false;
                        Flag = IOCTL_LCD_OFF;
                        break;
                    default:
                        break;
                }
                return HMIIOControl("BEP1:", Flag);
            }

     

     

     

    2008年3月31日 0:45
    版主

全部回复

  • 不知道你们背光驱动是谁开发的,可以和开发驱动的人员直接沟通,主要是设备名称和一个普通的参数的确定,不需要参数含义统一,仅需要和驱动程序接口一致即可。以下代码是我们公司的触摸屏控制背光的程序,仅供参考。

    Code Snippet

     //LCD控制
            public const int IOCTL_LCD_ON = 0x6;
            public const int IOCTL_LCD_OFF = 0x7;

            public static int HMIIOControl(string strName, int Flag)
            {
                //不是WinCE系统则退出
                if (Environment.OSVersion.Platform != PlatformID.WinCE) return -1;

                int hIO = CreateFile(strName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
                if (hIO == INVALID_HANDLE_VALUE)
                {
                    hIO = NULL;
                    return -1;
                }
                if (hIO != NULL)
                {
                    int lpInBuffer = 0;
                    int lpOutBuffer = 0;
                    int lpBytesReturned = 0;
                    DeviceIoControl(hIO, Flag, ref lpInBuffer, NULL, ref  lpOutBuffer, NULL, ref  lpBytesReturned, NULL);
                    CloseHandle(hIO);
                    return 0;
                }
                return -2;
            }
           

    //LCD控制
            public static bool IsLCDOpen = true;
            public static int LCD(ControlMode Mode)
            {
                int Flag = IOCTL_LCD_OFF;
                switch (Mode)
                {
                    case ControlMode.ON:
                        Flag = IOCTL_LCD_ON;
                        IsLCDOpen = true;
                        break;
                    case ControlMode.OFF:
                        IsLCDOpen = false;
                        Flag = IOCTL_LCD_OFF;
                        break;
                    default:
                        break;
                }
                return HMIIOControl("BEP1:", Flag);
            }

     

     

     

    2008年3月31日 0:45
    版主
  • 请问一下,我的笔记本屏幕亮度在Windows XP下太亮,并且不能用键盘FN+XX 方式调节(但是用电池模式会自动变暗)。采用window 7都正常,dell只提供windows7 的亮度调节方案。但是我不喜欢window7 ,咨询了DELL和显卡厂商都不能解决屏幕过亮的问题。

    由于屏幕实在太亮太刺眼,所以我想请问一下自己用C#如何能开发一个windows xp可以手动调节lcd backlight brightness的的程序?

    给点思路也好!如果是调灰度的或者改显卡驱动的方式就算了,那些我都试过,不好用。

     

    2010年12月16日 13:59