
HTC P3300 Artemis - Jak programově zněnit kontrast s světlost podsvícení
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
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
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]
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]