Tinh chỉnh độ sáng màn hình của PPC

Xiaohu

New member
GÂY DỰNG
Xin cho mình hỏi làm cách nào để thiết lập các tinh chỉnh (tăng / giảm) độ sáng của màn hình PPC trong Visual Studio ?

Xin cảm ơn.
 
Cảm ơn bạn đã giúp mình. Mình có làm thử và thay đổi value trong registry để thiết lập backlight, nhưng vấn đề chỗ là những giá trị mình thay đổi đó phải softreset lại thì mới có hiệu lực, như vậy thì ko hiệu quả vì dimlight mà phải softreset thì ko ổn cho lắm. Vậy xin hỏi bạn có cách nào khắc phục không ?
 
Cái này tôi đã có làm lâu lắm rồi, đến bây giờ không còn nhớ rõ nữa, nhưng đại khái nó như vầy: sau khi chỉnh registry xong bác phải "thông báo" (notify) cho hệ thống biết là bác đã thay đổi settings, lúc đó không cần soft reset nữa. Đối với Compact framework 2.0 thì dễ, nhưng đối với 1.0 thì khó hơn, do vậy có 2 cách:

1) Cách thứ nhất:

Lập 1 thread để monitor settings của bạn, đại khái như được mô tả trong đây
http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=4998

2) Cách thứ 2: dùng API

SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0);

Đại khái được mô tả ở đây:
http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=5057

Những thông tin mình viết ở trên có thể không chính xác lắm, nhưng có thể phục vụ cho bạn như một gợi ý. Mong rằng các bậc anh chị và cao thủ khác có thể cho bạn và mình thêm ý kiến.

Thân ái.

PS. Bạn có thể google dùng từ khóa sau:
"compact framework registry settings softreset"
 
2) Cách thứ 2: dùng API

SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0);
Xin cảm ơn bạn đã giúp mình. Mình đã xem qua hết các link bạn send cho mình và làm thử, nhưng vẫn không khắc phục được vấn đề khi thay giá trị trong registry thì phải softreset.
Mình có dùng thử SendMessage nhưng không được :
Mã:
[DllImport("user32.dll")]
private static extern long SendMessage(long hWnd, uint wMsg, Object wParam, Object lParam);

private const int HWND_BROADCAST = 0xffff;
private const int WM_SETTINGCHANGE = 0x000100100;

public void setBackLight(int value)
{
         RegistryKey backLight = Registry.CurrentUser.OpenSubKey("ControlPanel").OpenSubKey("BackLight", true);
         backLight.SetValue("Brightness", value, RegistryValueKind.DWord);

         SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0xF2, 0);
}

Khi run thì chương trình báo lỗi không tìm thấy thư viện user32.dll
Chỗ này có lẽ là do cấu trúc thư viện trên PPC khác so với PC phải không bạn, mình đang tìm hiểu lập trình trên PPC nên còn nhiều chỗ thắc mắc quá, bạn có thể giúp mình xử lý lỗi trên không ?

Xin cảm ơn.
 
hix, mình đã tìm thấy nó trong coredll nhưng mà vẫn không chạy được, có bác nào biết giúp mình với.
 
Back
Top