Trang này
How to access the windows taskbar to create an own contextmenu for minimized windows
dễ đọc hơn một chút - nó hightLight, có màu.
Nếu quan tâm, để phát sinh event ở TaskBar, ở SystemTray (Shift + rClick) có thể tham khảo:
http://www.dotnetspider.com/resources/28538-Custom-Context-Menu-Strip.aspx
Không cần phải vội
Trang này
How to access the windows taskbar to create an own contextmenu for minimized windows
dễ đọc hơn một chút - nó hightLight, có màu.
Multi-monitor Taskbar:
https://www.actualtools.com/multiplemonitors/features/multi_monitor_taskbar/
How can I customize the system menu of a Windows Form?
https://stackoverflow.com/questions/4615940/how-can-i-customize-the-system-menu-of-a-windows-form
Có những vấn đề bạn nêu ra ít khi gặp thì mới có sức cuốn hút thành viên tham gia thảo luận, như MMonitor chẳng hạn.
Còn các vấn đề cơ bản như menu, thanh tác vụ, khay hệ thống v.v... thì hầu như người lập trình Windows nào cũng đã từng qua. Nó ở mức độ nhập môn nên ít người tham gia thì cũng bình thường thôi, tôi chắc rằng các link bạn đưa thì các LTV C\C++ với API rất ít quan tâm bởi lẽ họ làm việc trực tiếp nhanh hơn so với dùng C#
C# Multi-Monitor Screenshot
Được như vậy thì rất tốt, nên không cần câu giờ những câu cảm thán như : Không ai quan tâm sao, người hiểu thì rất ít, v.v...
Bạn biết tôi đang làm điều gì không ?! Có lẽ điều bạn nói tôi đã đi qua lâu rồi. Cái tôi đang làm bạn chưa từng "đụng đũa" đâu.
Vậy nên, chia sẻ thì cứ chia sẻ có người dùng và có cả cám ơn, đập đập - xoa xoa đâu phải là hảo-hớn. Chào bạn, tôi tập trung vào chuyện khác đây.
Khè nhau làm chi, càng xa càng tốt, đỡ phải cạnh tranh, đấu đá nhau.
Là CT nhằm thông báo nên có thể tích hợp phần đọc âm thanh
NetExec, references to System32\Speech\Common\sapi.dll (COM), netFx 2.0
Visual C# Code:
//... namespace Sapi { ISpeechObjectTokens tok; InitializeComponent(); } tok = voice.GetVoices("", ""); cbo.Items.Add(t.GetAttribute("Name")); } try { cbo.SelectedItem = cbo.Text; voice.Voice = tok.Item(cbo.SelectedIndex); voice.Speak(txt.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync); } } MessageBox.Show(ex.StackTrace, ex.Message); } } bntPause.Text = "Resume"; voice.Pause(); } else { bntPause.Text = "Pause"; voice.Resume(); } } } }