2009-10-08 14 views

Trả lời

38

Trong C#: Screen Class Trình bày một thiết bị hiển thị hoặc nhiều thiết bị hiển thị trên một hệ thống. Bạn muốn thuộc tính Bounds.

foreach(var screen in Screen.AllScreens) 
{ 
    // For each screen, add the screen properties to a list box. 
    listBox1.Items.Add("Device Name: " + screen.DeviceName); 
    listBox1.Items.Add("Bounds: " + screen.Bounds.ToString()); 
    listBox1.Items.Add("Type: " + screen.GetType().ToString()); 
    listBox1.Items.Add("Working Area: " + screen.WorkingArea.ToString()); 
    listBox1.Items.Add("Primary Screen: " + screen.Primary.ToString()); 
} 
+1

Bằng cách sử dụng 'foreach (Screen screen trong Screen.AllScreens)' điều này trông thậm chí còn tốt hơn. –

+0

Thật vậy. Khi tôi trả lời, tôi không biết C# :) –

+0

Điều này chỉ hiển thị một màn hình khi chạy từ một dịch vụ, có một công việc xung quanh không? –

2

http://msdn.microsoft.com/en-us/magazine/cc301462.aspx

GetSystemMetrics là một chức năng tiện dụng, bạn có thể sử dụng để có được tất cả các loại kích thước toàn cầu, như kích thước của một biểu tượng hoặc chiều cao của một chú thích cửa sổ. Trong Windows 2000, có các tham số mới như SM_CXVIRTUALSCREEN và SM_CYVIRTUALSCREEN để có kích thước ảo của màn hình cho nhiều hệ thống màn hình. Những người mới sử dụng Windows - và những chuyên gia cũng nên kiểm tra tài liệu cho GetSystemMetrics để xem tất cả các chỉ số hệ thống (kích thước) khác nhau mà bạn có thể nhận được. Xem SDK nền tảng mới nhất tại http://msdn.microsoft.com/library/en-us/sysinfo/sysinfo_8fjn.asp. GetSystemMetrics là một chức năng tiện dụng mà bạn thường xuyên cần sử dụng và các công cụ mới xuất hiện với mọi phiên bản Windows.

+0

Điều này rất hay. Có mã được quản lý cho hầu hết các công cụ này ... Ví dụ, lớp 'System.Windows.Forms.SystemInformation' có thể chứa phần lớn. – mbrownnyc

5

Sử dụng Screen class.

Bạn có thể xem tất cả các màn hình trong mảng Screen.AllScreens và kiểm tra độ phân giải và vị trí của mỗi màn hình bằng thuộc tính Bounds.

Lưu ý rằng một số thẻ video sẽ hợp nhất hai màn hình vào một màn hình rất rộng, do đó Windows cho rằng chỉ có một màn hình. Nếu bạn muốn, bạn có thể kiểm tra xem chiều rộng của màn hình có cao gấp đôi chiều cao của màn hình hay không; nếu có, nó có thể là một khoảng ngang và bạn có thể coi nó là hai màn hình bằng nhau. Tuy nhiên, điều này phức tạp hơn và bạn không cần phải làm điều đó. Các nhịp dọc cũng được hỗ trợ nhưng ít phổ biến hơn.

Các vấn đề liên quan