Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

HTC P3300 Artemis - Jak programově zněnit kontrast s světlost podsvícení

Lokutus (6)|17.8.2008 18:15
Dobrý den,

potřebuji ve svém programu pro WM5 na uvedeném zařízení programově (.net cf 2.0) měnit intenzitu a kontrast podsvícení displeje. Někde jsem četl, že obecná funkce na to není, každé zařízení to prý má uděláno jinak.
Nevíte, jak to zařídit na tomto zařízení? Má na to HTC nějaké API? A kde se dá dohledat nějaká dokumentace?

Díky, Lokutus
RStein (2012)|22.8.2008 01:08
Artemis ted bohuzel po ruce nemam, takze jen rada:

Podivejte se na klic HKLM\Drivers\BuiltIn\Backlight\ReloadEventName - je to nazev "event" objektu, ktery potrebujete pro aplikaci zmen.

Dale se podivejte na hodnoty HKCU\ControlPanel\backlight a zmente je (ACBrightNess, BrightNess...).

Pres API CreateEvent vytvorte event 'ReloadEventName' a a aktivujte ji.
[CODE]
public static extern HANDLE CreateEvent(HANDLE lpEventAttributes, [In, MarshalAs(UnmanagedType.Bool)] bool bManualReset, [In, MarshalAs(UnmanagedType.Bool)] bool bIntialState, [In, MarshalAs(UnmanagedType.BStr)] string lpName);

DllImport("coredll.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool EventModify(HANDLE hEvent, [In, MarshalAs(UnmanagedType.U4)] int dEvent);

DllImport("coredll.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Auto)]
public static extern HANDLE CreateEvent(HANDLE lpEventAttributes, [In, MarshalAs(UnmanagedType.Bool)] bool bManualReset, [In, MarshalAs(UnmanagedType.Bool)] bool bIntialState, [In, MarshalAs(UnmanagedType.BStr)] string lpName);

[DllImport("coredll.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CloseHandle(HANDLE hObject);

private enum EventFlags
{
EVENT_PULSE = 1,
EVENT_RESET = 2,
EVENT_SET = 3
}




IntPtr ehandle = IntPtr.Zero;


ehandle = CreateEvent(IntPtr.Zero, false, false, eventNAme);

EventModify(ehandle , (int)EventFlags.EVENT_SET);

CloseHandle(ehandle );


[/CODE]