Tôi có hai màn hình (HP EliteDisplay E190i), cả hai đều được kết nối với hai máy tính (2x VGA + DP).
Những màn hình cũng hỗ trợ DVI, vì vậy thay vì có một nút bật tắt ngu ngốc, mỗi khi tôi muốn thay đổi giữa các máy tính tôi phải điều hướng thông qua trình đơn màn hình. Tôi sử dụng để có màn hình dumber và chuyển đổi đã thực sự dễ dàng, nhưng tôi chỉ không thể làm quen với toàn bộ điều hướng - nó thường bị khó hiểu ...Làm thế nào tôi có thể buộc màn hình vào chế độ tiết kiệm điện ngay lập tức trong C#?
Vì vậy, đây là thỏa thuận - Tôi muốn có thể nhanh chóng chuyển đổi giữa các máy tính bằng cách thực hiện một lệnh. Rõ ràng điều này không thể được thực hiện trực tiếp (các máy tính không được kết nối với nhau bằng mọi cách), nhưng khi màn hình vào chế độ tiết kiệm điện năng (hoặc khi hệ điều hành biến chúng tắt), các màn hình bắt đầu quét đầu vào có sẵn. Bằng cách này, họ sẽ khóa vào máy tính khác và giải quyết vấn đề.
giới thiệu Đủ Mặc dù vậy, tôi đã cố gắng this solution và nó làm việc tuyệt vời, nhưng nó không phải là hoàn hảo:
- Nó có một phai ra hình ảnh động mà mất một vài giây trước khi màn hình thực sự tắt
- tôi phải không chạm vào chuột/bàn phím trong suốt thời gian phai trên ra hình ảnh động, nếu không nó sẽ bị hủy
tôi đã cố gắng vô hiệu hóa các đầu vào theo this answer trước khi gửi màn hình ngủ, sau đó bật lại nó sau 5 giây, nhưng điều đó cũng không làm việc vì:
- Nó đòi hỏi tôi phải chạy ứng dụng với quyền admin, nếu đầu vào sẽ không bị chặn
- Mặc dù đầu vào đã bị chặn khi chạy với quyền quản trị, tôi vẫn có thể di chuyển chuột hoặc nhấn một số phím trên bàn phím trong khi làm mờ hình động để hủy (ngay cả khi con trỏ không di chuyển hoặc đầu vào bàn phím bị bỏ qua).
Dưới đây là mã của tôi:
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern int BlockInput(int fBlockIt);
static void Main()
{
SendMessage(0xFFFF, 0x112, 0xF170, 2);
try
{
int result = BlockInput(1);
Console.WriteLine(result);
Thread.Sleep(5000);
}
finally
{
BlockInput(0);
}
}
tôi sử dụng Windows 7 Enterprise x64 trên cả hai máy tính.
Có cách nào để có được lễ toàn này để làm việc?
Vì vậy, các vấn đề với các giải pháp thứ hai là bạn không thể chạy nó với quyền admin? –
Không, đầu vào bị chặn khi tôi chạy nó với quyền quản trị, như mong đợi. Tuy nhiên, mặc dù đầu vào bị chặn, di chuyển chuột hoặc nhấn một phím trên bàn phím của tôi (vật lý) đã hủy hoạt ảnh mờ dần - mặc dù _pointer_ không di chuyển và đầu vào bàn phím bị bỏ qua (phím được nhấn, nhưng không có văn bản nào gõ vào notepad). –
cách chặn đầu vào trước khi gửi lệnh ngủ – RomCoo