Re: Как управлять яркостью экрана в Windows Mobile 5 ?
От: Luzinoff  
Дата: 02.06.06 07:25
Оценка:
Есть в MSDN функция (Win CE 4.0):
LONG ChangeDisplaySettingsEx(
   LPCTSTR lpszDeviceName,
   LPDEVMODE lpDevMode,
   HWND hwnd,
   DWORD dwflags,
   LPVOID lParam
);


Импортирую в C# так:
[DllImport("coredll.dll", CharSet = CharSet.Unicode, EntryPoint = "ChangeDisplaySettingsEx")]
private static extern int ChangeDisplaySettingsEx(
   string strDeviceName,
   object objDevMode,
   object objHwnd,
   uint nFlags,
   out VIDEOPARAMETERS objParam);


Вызываю так:

 private struct VIDEOPARAMETERS {
          public Guid Guid;
          public uint vpOffset;
          public uint vpCommand;
          public uint vpFlags;
          public uint vpMode;
          public uint vpTVStandard;
          public uint vpAvailableModes;
          public uint vpAvailableTVStandard;
          public uint vpFlickerFilter;
          public uint vpOverScanX;
          public uint vpOverScanY;
          public uint vpMaxUnscaledX;
          public uint vpMaxUnscaledY;
          public uint vpPositionX;
          public uint vpPositionY;
          public uint vpBrightness;
          public uint vpContrast;
          public uint vpCPType;
          public uint vpCPCommand;
          public uint vpCPStandard;
          public uint vpCPKey;
          public uint bCP_APSTriggerBits;
          public char[] bOEMCopyProtection;
        };

 ...

 VIDEOPARAMETERS objVideoParameters;
 objVideoParameters.Guid = new Guid("02C62061-1097-11d1-920F-00A024DF156E");
 objVideoParameters.bOEMCopyProtection = new char[256];
 objVideoParameters.vpCommand = VP_COMMAND_GET;
 objVideoParameters.vpFlags = VP_FLAGS_BRIGHTNESS;

 ChangeDisplaySettingsEx(null, null, null, CDS_VIDEOPARAMETERS, out objVideoParameters);


При вызове бросает NotSupportedException, возможно импорт неправильный или не совпадают параметры...

Если кто пользовался данной функцией, напишите как её правильно импортировать.
C уважением, Лузинов Андрей Олегович.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.